我最初的疑问是
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查询吗?
提前谢谢。
发布于 2016-10-23 07:10:21
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);希望这能有所帮助。
https://stackoverflow.com/questions/40200368
复制相似问题