Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Linq Group by多个条件生成缺少的子记录_.net_Linq - Fatal编程技术网

.net Linq Group by多个条件生成缺少的子记录

.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

因此,我有一个要从数据库中获取的学生成绩列表,并希望使用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,我怎么能在将来依靠它不产生像这样看不见的bug呢。这根本没有道理


我已经在这里呆了好几个小时了,但似乎还没弄明白。有没有专家提供了一些信息?

您使用哪种加载方式?懒惰的或渴望的。你能确定GetListQuery结果得到Student.StudentGrades列表吗?@SercanTimoçin我正在使用延迟加载。。在上图中。只有一组返回0个学生成绩,而其他组返回正确的学生成绩。我认为这不是分组问题。代码看起来正确..您可以检查映射配置或添加here@SercanTimo映射配置是什么意思?我使用AutoMapper只是为了保存。我是指实体框架对象映射。学生与学生成绩的关系