我花了很多时间尝试将下面的查询转换为linq到实体。
SELECT ItemCode, AVG([Count]) As [Count]
FROM [tblHistory]
GROUP BY ItemCode
ORDER BY [Count] desc
在我的实体框架edmx中,我有tblHistory
字段
{ ItemCode(int), Count(int), Date(datetime) }
我能够按一列分组并显示该特定列(在本例中为Count
),但在同一上下文中访问ItemCode
会给我带来麻烦。
我尝试使用的其中一种方法如下:
var query = from p in Context.tblHistories
group p by p.ItemCode into g
select new tblHistory
{
ItemCode = g.Key,
Count = from c in g select new { c.Count }
};
如果有任何了解此情况的人员,我们很乐意为您提供更多信息,请告知我们。
答案 0 :(得分:3)
tblHistories.GroupBy(p => p.ItemCode)
.Select(g => new { ItemCode = g.Key, Count = g.Average (c => c.Count)})
.OrderByDescending(x => x.Count)
.AsEnumerable()
.Select(x => new tblHistory{ ItemCode = x.ItemCode, Count = (int)x.Count })