您好我正在尝试在我的网络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。如果有人可以请让我知道我在这里做错了什么。
答案 0 :(得分:1)
您将通过单独的"子查询"来返回表中所有出席人数。在dbContext.attendances.Count()
。你想要做的是Total = g.Count()
,它给你每组的计数。