gpt4 book ai didi

c# - 如何使用 Entity Framework 根据最大版本选择多条记录

转载 作者:行者123 更新时间:2023-11-30 20:31:09 24 4
gpt4 key购买 nike

我有这样的记录

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 如何为此工作。

最佳答案

使用 GroupBynumber 分组然后 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com