我有来自Dapper查询的动态结果,其中包含如下记录:
{DapperRow, billing_currency_code = 'USD', count(*) = '6'}
Run Code Online (Sandbox Code Playgroud)
我可以通过使用来访问'USD' rowVariable.billing_currency_code
要获得"6"值我试过rowVariable["count(*)"]和rowVariable.kv["count(*)"],不幸的是没有什么作品?
count(*)在我的情况下,我无法更改列名称
在这种情况下如何从rowVariable类型DapperRow中获取'6'值?
谢谢.
Mar*_*ell 23
如果列名真的是 "count(*)",那么您可以将行转换为字典:
var data = (IDictionary<string,object>)row;
object value = data["count(*)"];
Run Code Online (Sandbox Code Playgroud)
要使其工作(至少在SQL Server中),您的查询需要是这样的:
select count(*) as [count(*)]
Run Code Online (Sandbox Code Playgroud)
但是,在大多数情况下,列没有名称,在这种情况下:修复查询; p
其实,我可能会说,解决您的查询无论如何 ; 以下将更容易使用:
select count(*) as [Count]
Run Code Online (Sandbox Code Playgroud)
小智 10
假设您的数据如下
var Details={DapperRow, billing_currency_code = 'USD', count(*) = '6'}
Run Code Online (Sandbox Code Playgroud)
因为列是动态的
var firstRow= Details.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
获取数据的标题列
var Heading= ((IDictionary<string, object>)firstRow).Keys.ToArray();
Run Code Online (Sandbox Code Playgroud)
使用key获取数据的值
var details = ((IDictionary<string, object>)firstRow);
var vallues= details[Heading[0]];
Run Code Online (Sandbox Code Playgroud)