0

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

我有一个包含多个字段的表(我们称之为“文件”):

ID、版本、XYZ Primky 密钥基于 ID AND 版本。所以我可以有几行具有相同的 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 的列表并获取最后一个另一个请求中的 foreach 版本。谢谢!

4

1 回答 1

1

您可以为此使用以下 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

方法 'First' 只能用作最终查询操作。考虑在这种情况下使用“FirstOrDefault”方法

于 2010-09-09T09:02:55.303 回答