实体框架分组并获得最大值

Wit*_*tos 4 .net c# entity-framework

假设我的表格结构如下:

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
Run Code Online (Sandbox Code Playgroud)

使用 EF 我想获取 MyRow 列表,其中包含具有不同名称和最新日期的元素,因此在这种情况下它将是:

4 A 2015/01/03
5 B 2015/01/03
3 C 2015/01/02
Run Code Online (Sandbox Code Playgroud)

我从这样的事情开始:

var myRows = context.MyRows.GroupBy(mr => mr.Name).Select(..now wth with max..)
Run Code Online (Sandbox Code Playgroud)

Jon*_*nna 6

订购每组并取最后一个。

或者因为 EF 不(我上次检查) support Last(),将每个组反向排序并取第一个:

var myRows = context.MyRows
  .GroupBy(mr => mr.Name)
  .Select(grp => grp.OrderByDescending(mr => mr.Date).First());
Run Code Online (Sandbox Code Playgroud)