也可以在没有额外课程的情况下工作:
var myDictionary = conn.Query<string, int, KeyValuePair<string,int>>(sql, (s,i) => new KeyValuePair<string, int>(s,i))
.ToDictionary(kv => kv.Key, kv => kv.Value);
注意:使用 Dapper.NET 3.5 版本时,采用第一种、第二种和返回类型的 Query 方法需要您指定更多参数,因为 .NET 4.0 和 .NET 4.5 版本利用可选参数。
在这种情况下,以下代码应该可以工作:
string splitOn = "TheNameOfTheValueColumn";
var myDictionary = conn.Query<string, int, KeyValuePair<string,int>>(sql, (s,i) => new KeyValuePair<string, int>(s,i), null, null, false, splitOn, null, null)
.ToDictionary(kv => kv.Key, kv => kv.Value);
大多数参数将恢复为默认值,但这splitOn
是必需的,否则它将默认为“id”值。
对于返回两列“ ID ”和“ Description ”的查询,splitOn
应设置为“ Description ”。