我正在使用实体框架连接数据库。

我有一个表(让我们称其为“文件”),它有几个字段:

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”方法

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top