Dapper.net使用查询进入字典

zt9*_*788 -1 c# dapper

我的sql是:

select (select count(*) from TblRMember where sex=1) male,
 (select count(*) from TblRMember where sex=2) female,
 (select count(*) from TblRMember where sex=0) unkown
Run Code Online (Sandbox Code Playgroud)

我希望Dapper.Net像这样返回一个Dictinary:

Keys:male,female,nukown
Value:10,30,50
Run Code Online (Sandbox Code Playgroud)

我看到如何使用Dapper Dot Net从数据库结果映射到Dictionary对象?,但那不行!

如何使用ToDictionary或其他方式实现我想要的

var myDictionary = sqlConnection.Query(strSql).ToDictionary(??);
Run Code Online (Sandbox Code Playgroud)

谢谢!

gza*_*axx 5

首先将您的查询更改为单个查询:

select case when sex = 1 then 'male'
            when sex = 2 then 'female'
            when sex = 0 then 'unknown'
       end as sex, count(*) as cnt
from TblRMember
group by sex
Run Code Online (Sandbox Code Playgroud)

因为我看到的sex是数字,所以你要么必须通过名字(sexname?)选择coumn,要么在代码中更改它.之后:

var myDictionary = sqlConnection.Query(strSql)
                    .ToDictionary(x => x.sex.ToString(), x => (int)x.cnt);
Run Code Online (Sandbox Code Playgroud)