C# 在MVC中将SQL(行数)查询转换为Linq?

C# 在MVC中将SQL(行数)查询转换为Linq?,c#,asp.net-mvc,C#,Asp.net Mvc,如何在CMVC中将下面的SQL查询转换为Linq表达式 您可以使用除ToList操作之外的其他操作首先获取id eq、Max等为什么需要这样做?为什么不使用您现有的查询?请澄清您想要实现什么?为什么在Linq中需要行数?您可以稍后以索引为例迭代集合。我需要两列,即:;lineclassid是第1列,lineclass是第2列,在第2列中,数据有重复项,我需要lineclass列数据,在消除linqanyone中第2列的重复项后,使用各自的id消除重复项。回答问题此答案基于您的评论。在res对象中

如何在CMVC中将下面的SQL查询转换为Linq表达式


您可以使用除ToList操作之外的其他操作首先获取id eq、Max等

为什么需要这样做?为什么不使用您现有的查询?请澄清您想要实现什么?为什么在Linq中需要行数?您可以稍后以索引为例迭代集合。我需要两列,即:;lineclassid是第1列,lineclass是第2列,在第2列中,数据有重复项,我需要lineclass列数据,在消除linqanyone中第2列的重复项后,使用各自的id消除重复项。回答问题此答案基于您的评论。在res对象中有lineClass和相应ID的数组。这就是你需要的,不是吗?上面的解决方案不起作用,我需要相应过滤行的ID在你的查询中,你取第一个。更改查询中的最后一行以选择新的{LineClass=g.Key,LineClassId=g.First};最后,这是我从我的同事那里得到的答案
with cte
as
(
select *,rank() over(partition by LineClass order by LineClassId) as rownum 
from MT_LineClass where ProjectId =1 
)
select * from cte where  rownum=1
var res = from tbl in MT_LineClass
          group tbl.lineclassid by tbl.lineclass into g
          select new { LineClass = g.Key, LineClassIds = g.ToList() };
var lst = (from t in context.MT_LineClass
                       where t.ProjectId == projId
                       group t by t.LineClass into g
                       select new Mt_Lineclass
                       {
                           lineId = g.Select(t => t.LineClassId).FirstOrDefault(),
                           Lineclass = g.Select(t => t.LineClass).FirstOrDefault()

                       }).ToList();