C# 在MVC中将SQL(行数)查询转换为Linq?
如何在CMVC中将下面的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对象中
您可以使用除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();