Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用LINQ的SQL Server组_C#_.net_Linq - Fatal编程技术网

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,但是用方法语法编写的。谢谢,正如我在回答中提到的。这是方法语法。对不起,我没有看到