仅列出复合键中行的最后一个版本
Listing only the last version of a row in a composite key
我在理解复合键通常如何与 Entity Framework 或 SQL 一起工作时遇到了一些麻烦。
这是我的 table 的样子:
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
我试过了,但没有用,如果 table 为空,它会抛出错误。
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
每组只得到最后一组
我在理解复合键通常如何与 Entity Framework 或 SQL 一起工作时遇到了一些麻烦。
这是我的 table 的样子:
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
我试过了,但没有用,如果 table 为空,它会抛出错误。
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
每组只得到最后一组