C# 使用LINQ的SQL Server组
我在示例应用程序中使用实体框架。它有两个数据库集C# 使用LINQ的SQL Server组,c#,.net,linq,C#,.net,Linq,我在示例应用程序中使用实体框架。它有两个数据库集TICKETS和DEPARTMENT,它们对应于TICKETS和DEPARTMENTSQLServer表 我想编写LINQ查询,它将导致下面的sql查询或产生类似的输出 SELECT D.NAME as DeptName, T.STATUS as Status, COUNT(1) as Count FROM TICKETS T , DEPARTMENT D WHERE T.FK_DEPT_ID = D.PK_DEPT
TICKETS
和DEPARTMENT
,它们对应于TICKETS
和DEPARTMENT
SQLServer表
我想编写LINQ查询,它将导致下面的sql查询或产生类似的输出
SELECT D.NAME as DeptName, T.STATUS as Status, COUNT(1) as Count
FROM TICKETS T
, DEPARTMENT D
WHERE T.FK_DEPT_ID = D.PK_DEPT_ID
GROUP BY D.NAME , T.STATUS;
您应该能够使用以下LINQ查询来获得结果:
var result = from t in conn.TICKETS
join dept in conn.DEPARTMENT on t.FK_DEPT_ID equals dept.PK_DEPT_ID
select new { DeptName = dept.NAME, Status = t.STATUS }
into temp
group temp by new { temp.DeptName, temp.Status }
into g
select new { g.Key.DeptName, g.Key.Status, Count = g.Count()};
您也可以使用此方法语法
db.Tickets.Join(db.Department,t=>t.FK_DEPT_ID,d=>d.PK_DEPT_ID,(x,y)=>new{x.STATUS,y.NAME})
.GroupBy(g=>new {g.STATUS,g.NAME})
.Select(z=>new {z.Key.Name,z.key.STATUS,z.Count()})
您可以使用类似的方法来测试/生成linq查询。查看此获取更多帮助您尝试了什么,您遇到了什么困难?此外:有什么原因不使用联接吗?@serv,我使用了LINQ联接,但无法获得所需的输出。我主要是说在您的SQL查询中,这也可以,但我猜这类似于@xxMUROxx answer,但是用方法语法编写的。谢谢,正如我在回答中提到的。这是方法语法。对不起,我没有看到