仅列出组合键中行的最后一个版本



我在理解组合键应该如何与实体框架或 SQL 一起使用时遇到了一点麻烦。

这是我的表格的样子:

COD_ITEM    COD_ITEM_VERSION    ITEM_NAME
1           1                   A
1           2                   A
1           3                   A
2           1                   A
2           2                   A
2           3                   A
2           4                   A
2           5                   A
3           1                   A

我需要列出这些项目,但只有每个项目的最后一个版本......所以我会有这个输出:

COD_ITEM    COD_ITEM_VERSION    ITEM_NAME
1           3                   A
2           5                   A
3           1                   A

我试过这个,但它不起作用,如果表为空,它会抛出错误。

db.T_ITEMS.GroupBy(r => r.COD_ITEM).Last().ToList();

我该怎么做?我现在的脑子里一片空白。

我想你正在寻找这个:

var result=db.T_ITEMS.GroupBy(r => r.COD_ITEM)
                     .Select(g=>g.OrderByDescending(r=>r.COD_ITEM_VERSION).FirstOrDefault())
                     .ToList();

分组后,按(降序(排序COD_ITEM_VERSION每个组,只得到最后一个组

最新更新