5

我在foreach循环中调用存储过程,并希望在每次迭代中更改其中一个参数的值。目前,一旦将参数添加到 DynamicParameters 似乎没有任何方法可以访问这些参数,尽管通过阅读源代码,我可以看到 DynamicParameters 确实保留了一个内部字典。有什么理由不公开,或者是否有其他方法可以访问 ParamInfos 来更改值?

更新

我目前拥有的:

foreach ( var fooID in fooIDs )
{
    var dynamicParameters = new DynamicParameters();
    dynamicParameters.Add( ParameterNames.BarID, barID );
    dynamicParameters.Add( ParameterNames.FooID, fooID);

    connection.Execute( ProcNames.MyProc, dynamicParameters, commandType:CommandType.StoredProcedure );
}
4

2 回答 2

2

重新添加参数。

// Call Add() with new values.
dynamicParameters.Add(ParameterNames.BarID, differentBarID);
于 2019-02-25T18:10:16.040 回答
1

DynamicParameters对它的作用如此保密并没有真正的原因,ParamInfo可以公开该类,我很乐意提供适当的迭代/修改属性和/或方法。如果您想参与其中,请提交补丁。

同时,您可以IDynamicParameters在您的应用程序中简单地实现我们用来将其分派到底层命令的简单接口。您可以使用 DynamicParameters 作为起点。

于 2012-05-10T11:29:50.487 回答