.net Linq Group by多个条件生成缺少的子记录
因此,我有一个要从数据库中获取的学生成绩列表,并希望使用linq对它们进行分组。我的linq问题是.net Linq Group by多个条件生成缺少的子记录,.net,linq,.net,Linq,因此,我有一个要从数据库中获取的学生成绩列表,并希望使用linq对它们进行分组。我的linq问题是 var query = GetListQuery().Where(m => m.StudentId == studentId); var groupedQuery = query.GroupBy(m => new { Year = m.Year, TermTypeId = m.TermTypeId, TermNumber = m.TermNumber, SchoolId = m.Cla
var query = GetListQuery().Where(m => m.StudentId == studentId);
var groupedQuery = query.GroupBy(m => new { Year = m.Year, TermTypeId = m.TermTypeId, TermNumber = m.TermNumber, SchoolId = m.Class.SchoolId })
.Select(m => new StudentGradeDto
{
Year = m.Key.Year,
TermTypeId = m.Key.TermTypeId,
TermNumber = m.Key.TermNumber,
SchoolId = m.Key.SchoolId,
StudentGrades = m.ToList()
});
当我检索记录时,它看起来是这样的
一组,如图所示。有0个学生成绩,该组假设有2个学生成绩
这怎么可能?即使是我的错,linq根据条件生成组,一个组怎么可能有0个子集合?这让我觉得这是linq的问题。我怀疑这是分组条件Class.SchoolId的问题,但是如果linq不能正确地转换为SQL,我怎么能在将来依靠它不产生像这样看不见的bug呢。这根本没有道理
我已经在这里呆了好几个小时了,但似乎还没弄明白。有没有专家提供了一些信息?您使用哪种加载方式?懒惰的或渴望的。你能确定GetListQuery结果得到Student.StudentGrades列表吗?@SercanTimoçin我正在使用延迟加载。。在上图中。只有一组返回0个学生成绩,而其他组返回正确的学生成绩。我认为这不是分组问题。代码看起来正确..您可以检查映射配置或添加here@SercanTimo映射配置是什么意思?我使用AutoMapper只是为了保存。我是指实体框架对象映射。学生与学生成绩的关系