我正在使用实体框架来连接数据库。
我有一个表(我们称之为“文件”),它有几个字段:
ID,版本,XYZ Primarky密钥基于ID和版本。 所以我可以有几行具有相同的ID但不同的版本(和反向)。
问题是:
我如何使用LAMBDA表达式询问我的实体框架,将所有“文件”的最后版本返回给我。
实施例: DATAS:
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在另一个请求中。谢谢!
答案 0 :(得分: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'而不是