C# 仅列出复合键中某行的最后一个版本
我在理解复合键一般如何与实体框架或SQL一起工作时遇到了一点困难 我的桌子是这样的:C# 仅列出复合键中某行的最后一个版本,c#,sql-server,entity-framework,linq,composite-primary-key,C#,Sql Server,Entity Framework,Linq,Composite Primary Key,我在理解复合键一般如何与实体框架或SQL一起工作时遇到了一点困难 我的桌子是这样的: COD_ITEM COD_ITEM_VERSION ITEM_NAME 1 1 A 1 2 A 1 3 A 2 1 A 2 2
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\u ITEM\u VERSION
每组进行排序,只获得最后一个