我在理解复合键如何与Entity Framework或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();
我该怎么做?我现在的思绪完全是空白。
答案 0 :(得分:2)
我想你是这样看的:
var result=db.T_ITEMS.GroupBy(r => r.COD_ITEM)
.Select(g=>g.OrderByDescending(r=>r.COD_ITEM_VERSION).FirstOrDefault())
.ToList();
分组后,按每个组排序(按降序排列)COD_ITEM_VERSION
以获得最后一个