返回所有具有最大值的行
-
01-10-2019 - |
题
我正在使用实体框架连接数据库。
我有一个表(让我们称其为“文件”),它有几个字段:
ID,版本,XYZ Primarky键基于ID和版本。因此,我可以使用相同的ID但不同的版本(以及反倒数)有多个行。
问题是:
我该如何用lambda表达式要求我的实体框架返回我所有的“文件”的最后版本。
示例:数据:
ID;Version;Other
1;1;YX
1;2;YZ
2;1;AH
2;2;BH
2;5;CA
1;3;AAA
结果:
1;3;AAA
2;5;CA
谢谢!
!!目的是数据库不需要返回所有行,只称为一次,因此请忘记解决方案,例如Getallrows,仅阅读整个集合并仅保存最新内容,或获取所有可能的ID列表,然后获得最后一个另一个请求中的版本。谢谢!
解决方案
您可以使用以下linqtoentites查询:
var result = from f in myEntities.Files
group f by f.ID into g
select g.OrderByDescending(f => f.Version).FirstOrDefault();
使用可能更有意义 First
代替 FirstOrDefault
但是然后你得到了 UnsupportedException
:
方法“第一”只能用作最终查询操作。考虑在这种情况下考虑使用“ firstordefault”方法
不隶属于 StackOverflow