我有这样的记录
id name number version
---------------------------
1 NewYork 1 1
2 LosAngeles 1 2
3 Seatle 1 3
4 Toronto 2 1
5 Ottawa 2 2
我只想选择相同编号内版本最高的记录
所以我写了这样的查询
SELECT *
FROM city c
WHERE c.[version] = (SELECT Max([version])
FROM [city] c2
WHERE c2.number = c.number)
它会返回
id name number version
---------------------------
3 Seatle 1 3
5 Ottawa 2 2
我如何使用 Entity Framework 在 linq 中编写它?
db.cities.where(c => c.version == (????))
我不知道 Entity Framework 如何为此工作。
最佳答案
使用 GroupBy
按 number
分组然后 OrderBy
最高纪录version
:
var result = db.cities.GroupBy(item => item.number)
.Select(grouping => grouping.OrderByDescending(item => item.version)
.First());
关于c# - 如何使用 Entity Framework 根据最大版本选择多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43619364/