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)
};
得到一个空的结果列表。
在 Debug模式下扩展结果集时,显示错误函数评估超时
需要这方面的帮助。
最佳答案
查询按原样工作得很好,至少在我的模型中我只是拼凑在一起......它可能与数据库的结构有关....在我的模型中我的学生 ID 是外国的StudInDepartment (ha!) 表的关键,甚至这个简化的查询也能正常工作
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 debugger issue ,那里帮不了你,stackoverflow 上还有其他线程也在讨论它。
关于c# - LINQ - 加入 Group By 并获得平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6929136/