SQL的相关linq查询
本文关键字:linq 查询 SQL | 更新日期: 2023-09-27 18:14:30
我最初的查询是
select *
from Personalization_Mapping
相关的LINQ查询是
List<Personalization_Mapping> list = _appDbContext.Personalization_Mapping.OrderBy(s => s.ID).ToList();
现在我需要相关的唯一列,为此,我将SQL更改为
SELECT *
FROM
(SELECT
*,
ROW_NUMBER() OVER(PARTITION BY CustomerID ORDER BY ID DESC) rn
FROM
Personalization_Mapping) a
WHERE
rn = 1
有人能帮我找到等效的LINQ查询吗?
提前谢谢。
var result = _appDbContext.Personalization_Mapping.OrderByDescending(x => x.ID)
.GroupBy(x => x.CustomerID)
.Select(g => new {g, count= g.Count()})
.SelectMany(t => t.g.Select(b => b)
.Zip(Enumerable.Range(1,t.count), (j,i) => new {j.Property1, j.Property2, rn = i}));
用实际实体替换Property1, Property2
。
现在为第1行应用过滤器
result.Where(x => x.rn == 1);
希望这能有所帮助。