简体   繁体   English

如何将SQL转换为Linq

[英]How to convert SQL into Linq

I am trying to get this sql statement into Linq format with no success. 我正在尝试将此SQL语句转换为Linq格式,但没有成功。 Instead of displaying all data, i want to display ten items from each category. 我不想显示所有数据,而是要显示每个类别的十个项目。 Any help would be great. 任何帮助都会很棒。

select *
from (
     select *,
             row_number() over(partition by T.category order by T.id desc) as rn
 from clothes as T
 ) as T
where T.rn <= 10;

my attempt at linq is below; 我对linq的尝试如下:

var query= from (subquery) as DB in dataContext.table where DB.rn <=10;
               select DB;
var subquery = row_number() over(partition by DB.id order by DB.category desc) as rn from DB in dataContext.table as DB
                    select DB;

use GroupBy , Take and a SelectMany should do the trick 使用GroupByTakeSelectMany应该可以解决问题

var result = dataContext.table.GroupBy(m => m.category)
             .SelectMany(g => g.OrderByDescending(x => x.Id).Take(10));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM