Linq Group通过多种条件生成丢失的子记录

时间:2016-02-26 11:37:21

标签: .net linq

所以我有一个我想从数据库中获取的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()
                        });

当我检索记录时,它看起来像这样

enter image description here

一组,如图所示。拥有0名学生同志,该组假设有2名学生同志。

这怎么可能?即使这是我的错,并且linq根据条件生成组,如何组有0个子集合?这让我觉得这是linq的问题。我怀疑这是分组条件 Class.SchoolId 的问题,但是如果linq无法正确地转换为SQL,我认为将来如何依赖它不会产生看不见的错误这个。这没有意义。

我现在在这几个小时,现在似乎无法解决这个问题。那里的任何专家有一些投入吗?

0 个答案:

没有答案