所以我有一个我想从数据库中获取的StudentGrades列表,并希望使用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.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,我认为将来如何依赖它不会产生看不见的错误这个。这没有意义。
我现在在这几个小时,现在似乎无法解决这个问题。那里的任何专家有一些投入吗?