如何在分组查询上获得Linq返回计数作为列
本文关键字:返回 Linq 查询 | 更新日期: 2023-09-27 18:04:44
嗨,我正试图将TSQL转换为Linq在我的web api,但我没有得到正确的结果。我现有的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()
});
但问题是它没有返回相同的数据,每个教室返回的Total是500。如果有人可以让我知道我在这里做错了什么
通过在dbContext.attendances.Count()
上执行单独的"子查询",返回表中所有出席人数的计数。你要做的是Total = g.Count()
,它给你每组的计数