【发布时间】:2013-12-06 19:56:10
【问题描述】:
我从 Dapper 作为字典得到了结果:
using (var multi = cnn.QueryMultiple("dbo.[s_Dashboard_stats]",
commandType: CommandType.StoredProcedure))
{
var recentHits =
multi.Read().ToDictionary(x => (string)x.URL, x => (double)x.MinsAgo);
}
这工作正常,但数据更改导致(正确)重复键值。为了解决这个问题,我想我应该将字典改为列表:
var PopularHits =
multi.Read<KeyValuePair<string, double>>().ToList<KeyValuePair<string, double>>();
列表以项目结束,但 KVP 的值为空,如何将值投影到 KeyValuePair 对象中?我似乎无法正确获取 lambda 语法.....
【问题讨论】:
-
@lazyberezovsky
multi是从QueryMultiple返回的多网格读取器 - 尽管必须注意,在读取单个网格时,这是不必要的 - 可以使用 @987654325 读取此查询@ -
@MarcGravell 谢谢,马克。还没用过多格阅读器
-
@lazyberezovsky 只有在查询包含多个
selects 时才需要它们 - 这可能很有用,即select * from Customers where Id=@id; select * from Orders where CustomerId=@id; select * from CustomerAddresses where CustomerId=@id;(或其他) -
这里就是这种情况,实际上有多个 SELECT 我从示例代码中省略了。