添加到DynamicParameters后更改ParamInfo的值?

时间:2012-04-24 18:29:28

标签: dapper

我在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 );
}

2 个答案:

答案 0 :(得分:1)

没有真正的理由DynamicParameters对它的作用如此秘密,ParamInfo类可以暴露,我很乐意提供适当的迭代/修改属性和/或方法。如果您想要投入,请提交补丁。

与此同时,您可以简单地实现IDynamicParameters,这是我们用来在您的应用中将此分配给底层命令的简单界面。您可以使用DynamicParameters作为起点。

答案 1 :(得分:1)

重新添加参数。

// Call Add() with new values.
dynamicParameters.Add(ParameterNames.BarID, differentBarID);