本文介绍了可在小巧玲珑的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对象列举喜欢的参数字典?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-03 03:33