2016-08-31 51 views
0

嗨我想在我的web api中将TSQL转换为Linq,但我没有得到正确的结果。 我现有的TSQL是:如何获得Linq返回计数作为列上的分组查询

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(回答西拉杰·曼苏尔)

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

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

+1

谢谢你做到了。我已在下面更新了我的答案。 – snowflakes74