LINQ-加入Group By并获得平均成绩

本文关键字:加入 Group By LINQ- | 更新日期: 2023-09-27 18:04:36

SQL:

SELECT DeptId,avg(Marks) FROM StudentTb s
JOIN StudInDepartment d on s.StudentId = d.StudentId
GROUP BY DeptId

转换为Linq:

  var deptRpts =         from s in this.ObjectContext.StudentTb
                         join d in this.ObjectContext.StudInDepartment on s.StudentId equals d.StudentId  
                         group s by d.DeptId into grp
                         select new {
                             DeptId = grp.Key,
                             AverageMarks = grp.Average(ed=>ed.Marks)
                         };

得到一个空的结果列表。

在调试模式下展开结果集时。它显示错误功能评估超时

需要帮助。

LINQ-加入Group By并获得平均成绩

查询可以正常工作,至少在我刚刚创建的模型中。。。这可能与数据库的结构有关。。。。在我的模型中,我将studentID作为StudInDepartment(哈!(表的外键,即使是这个简化的查询也可以正常使用

var deptRpt2 = from d in ctx.StudInDepartment
   group d by d.DeptId into grp
   select new {
      Dept = grp.Key,
      AverageMarks = grp.Average(ed=>ed.StudentTb.Marks)
   };

您收到的消息"函数求值超时"可能是Visual Studio调试器的问题,对您没有帮助,堆栈中还有其他线程也在讨论此问题。