如何使用Dapper映射到数据库结果中的查找对象?

问题描述:

如果我有一个简单的SQL查询,如:如何使用Dapper映射到数据库结果中的查找<string,string>对象?

string sql = "SELECT [NonUniqueString] as Foo, [StringValue] as Bar FROM Table"; 

,我想它映射到一个Lookup<string, string>对象我会怎么做这与小巧玲珑的?

ILookup<string, string> lookup = connection.Query<Table>(sql) 
    .ToLookup(x => x.NonUniqueString, x => x.StringValue); 
+0

只是为了澄清这个解决方案需要复杂的表型为了工作,我还需要删除在SQL查询的别名。 –

+0

@JonasAxelsson:是的,dapper会自动将这个类的属性映射到列 –

这是我目前如何做查询和映射,也许它可以以更简单的方式完成。

IEnumerable<dynamic> result = await dbConnection.QueryAsync(sql); 
ILookup<string, string> xxx = result.ToLookup(k => (string)k.Foo, v => (string)v.Bar); 
Lookup<string, string> yyy = (Lookup<string, string>)xxx;