我有一个Dapper查询的动态结果,其中包含如下记录:
{DapperRow, billing_currency_code = 'USD', count(*) = '6'}
我可以使用rowVariable.billing_currency_code
访问“美元”
为了获得'6'的值,我尝试使用rowVariable["count(*)"]
和rowVariable.kv["count(*)"]
,但不幸的是,此方法rowVariable.kv["count(*)"]
...
我无法更改count(*)
列名
在这种情况下,如何从rowVariable
类型的rowVariable获取“ 6”值?
如果列名真的是 "count(*)"
,那么您可以将该行转换为字典:
var data = (IDictionary<string,object>)row;
object value = data["count(*)"];
要使其工作(至少在SQL Server中),您的查询需要是这样的:
select count(*) as [count(*)]
但是,在大多数情况下,列没有名称 ,在这种情况下:修复查询; p
其实,我可能会说, 反正解决您的查询;以下将更容易使用:
select count(*) as [Count]
假设您的数据如下
var Details={DapperRow, billing_currency_code = 'USD', count(*) = '6'}
因为列是动态的
var firstRow= Details.FirstOrDefault();
获取数据的标题列
var Heading= ((IDictionary<string, object>)firstRow).Keys.ToArray();
使用密钥获取数据的值
var details = ((IDictionary<string, object>)firstRow);
var vallues= details[Heading[0]];