如何获取Linq返回Count作为分组查询的列

时间:2016-08-31 00:35:43

标签: c# linq tsql

您好我正在尝试在我的网络API中将TSQL转换为Linq,但我没有得到正确的结果。 我现有的TSQL是:

SELECT COUNT(a.Id) as total ,c.Name as classroom 
From Attendance a INNER JOIN Classroom c ON a.classroom = c.Id 
WHERE DropDate= '20160815'  
GROUP BY c.Name

我尝试转换为LINQ的方法如下:

这是更新的LINQ(来自Siraj Mansour的答案)

 var name = (from a in dbContext.attendances
                        join c in dbContext.classrooms on a.Classroom equals c.Id
                        let classroom = c.Name
                        where (a.DropDate == today)
                        group a.Classroom by c.Name into g
                        select new
                        {
                            classroom = g.Key,
                            total = g.Count()
                        });

但问题是它没有带回相同的数据并且每个教室返回总计500。如果有人可以请让我知道我在这里做错了什么。

1 个答案:

答案 0 :(得分:1)

您将通过单独的"子查询"来返回表中所有出席人数。在dbContext.attendances.Count()。你想要做的是Total = g.Count(),它给你每组的计数。