本文介绍了可在小巧玲珑的DynamicParameters对象列举喜欢的参数字典?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我知道我可以使用 ParameterDirection
与Dapper.DynamicParameters:
VAR参数=新DynamicParameters();
parameters.Add(IPARAM,42);
parameters.Add(oparam,空,DbType.Int32,ParameterDirection.Output);
connection.Execute(SQL参数);
但我这样做,用时词典<字符串对象>
VAR参数=新词典<字符串对象>();
parameters.Add(IPARAM,42);
parameters.Add(oparam,/ * ??? * /);
connection.Execute(SQL参数);
另外,请问有什么可以遍历 DynamicParameters
,以获取参数的名称和值
原标题:
解决方案
It appears to be a bug in Dapper. This is confirmed to work in the latest NuGet package:
foreach (var paramName in parameters.ParameterNames)
{
var value = ((SqlMapper.IParameterLookup)parameters)[paramName];
}
However, it's a bit verbose. Locally using the Dapper source (not a NuGet package), I was able to run this code without error (As of writing that's commit b77e53):
foreach (var paramName in parameters.ParameterNames)
{
var value = parameters.Get<dynamic>(paramName);
}
According to Charles Burns' comment, it still throws an exception, which leads me to believe the patch hasn't made it into NuGet yet. The commit which fixes Get<dynamic>
is here
这篇关于可在小巧玲珑的DynamicParameters对象列举喜欢的参数字典?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!