让我说我的表格结构如下:
MyRow:
Id Name Date
1 A 2015/01/01
2 B 2015/01/01
3 C 2015/01/02
4 A 2015/01/03
5 B 2015/01/03
6 A 2015/01/02
7 C 2015/01/01
使用EF我希望获得MyRow列表,其中包含具有不同名称和最新日期的元素,因此在这种情况下它将是:
4 A 2015/01/03
5 B 2015/01/03
3 C 2015/01/02
我从这样的事情开始:
var myRows = context.MyRows.GroupBy(mr => mr.Name).Select(..now wth with max..)
答案 0 :(得分:2)
订购每个小组并取最后一个小组。
或者由于EF没有(我上次检查过)支持Last()
,请反向订购每个组并采取第一个:
var myRows = context.MyRows
.GroupBy(mr => mr.Name)
.Select(grp => grp.OrderByDescending(mr => mr.Date).First());
答案 1 :(得分:0)
var data = context.MyRows.Group(p => p.Name)
.Select(g => new {
Type = g.Key,
Date = g.OrderByDescending(p => p.Date)
.FirstOrDefault()
}