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

时间:2017-03-29 18:22:29

标签: c# sql-server entity-framework linq composite-primary-key

我在理解复合键如何与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();

我该怎么做?我现在的思绪完全是空白。

1 个答案:

答案 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以获得最后一个

相关问题