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)
};
得到一个空的结果列表。
在调试模式下展开结果集时。它显示错误功能评估超时
需要帮助。
查询可以正常工作,至少在我刚刚创建的模型中。。。这可能与数据库的结构有关。。。。在我的模型中,我将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调试器的问题,对您没有帮助,堆栈中还有其他线程也在讨论此问题。