首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL的相关linq查询

SQL的相关linq查询
EN

Stack Overflow用户
提问于 2016-10-23 06:52:06
回答 1查看 72关注 0票数 1

我最初的疑问是

代码语言:javascript
复制
select * 
from Personalization_Mapping 

相关的LINQ查询是

代码语言:javascript
复制
List<Personalization_Mapping> list = _appDbContext.Personalization_Mapping.OrderBy(s => s.ID).ToList();

现在我需要相关的唯一列,为此,我将SQL更改为

代码语言:javascript
复制
SELECT *
FROM 
    (SELECT  
         *,
         ROW_NUMBER() OVER(PARTITION BY CustomerID ORDER BY ID DESC) rn
     FROM 
         Personalization_Mapping) a
WHERE 
    rn = 1

有人能帮我找到等价的LINQ查询吗?

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-10-23 07:10:21

代码语言:javascript
复制
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行应用筛选器

代码语言:javascript
复制
result.Where(x => x.rn == 1);

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40200368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档