我在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 );
}
答案 0 :(得分:1)
没有真正的理由DynamicParameters对它的作用如此秘密,ParamInfo
类可以暴露,我很乐意提供适当的迭代/修改属性和/或方法。如果您想要投入,请提交补丁。
与此同时,您可以简单地实现IDynamicParameters
,这是我们用来在您的应用中将此分配给底层命令的简单界面。您可以使用DynamicParameters作为起点。
答案 1 :(得分:1)
重新添加参数。
// Call Add() with new values.
dynamicParameters.Add(ParameterNames.BarID, differentBarID);