Asp.net 如何将LINQ AllIncluding与GroupBy Select一起使用?

Asp.net 如何将LINQ AllIncluding与GroupBy Select一起使用?,asp.net,asp.net-mvc,linq,entity-framework,Asp.net,Asp.net Mvc,Linq,Entity Framework,我正在查询存储库,并使用AllIncluding将其他回购添加到我的查询中。通过下面的查询,我得到了所有的注册、日历、学生和学校,与预期的一样 var allStudentEnrollments = uow.EnrollmentRepo .AllIncluding(i => i.Calendar, i => i.Student, i => i.Calendar.School)

我正在查询存储库,并使用AllIncluding将其他回购添加到我的查询中。通过下面的查询,我得到了所有的注册、日历、学生和学校,与预期的一样

            var allStudentEnrollments = uow.EnrollmentRepo
                                        .AllIncluding(i => i.Calendar, i => i.Student, i => i.Calendar.School)
                                        .Where(w => w.Calendar.School.District.Project.ProjectId == CurrentProjectId &&
                                                    (w.Grade == "01"||
                                                    w.Grade == "02"));
我现在想做的是获取最新的注册信息。我试图通过按startdate排序,然后选择第一条记录来做到这一点,但我似乎丢失了所有附加数据(学生、日历、学校)。下面的查询是我开始处理的问题,但似乎可以让它正常工作

            IQueryable<StudentCalendar> students = uow.StudentCalendarRepo
                                                  .AllIncluding(i => i.Calendar, i => i.Student, i => i.Calendar.School)
                                                  .Where(w => w.Calendar.School.District.Project.ProjectId == CurrentProjectId &&
                                                              (w.Grade == CurrentCohortTrack.LowerGradeLevel ||
                                                               w.Grade == CurrentCohortTrack.UpperGradeLevel))
                                                  .GroupBy(g => g.StudentId)
                                                  .Select(s => s.OrderByDescending(o => o.EnrolledStartDate)
                                                                .FirstOrDefault());
IQueryable students=uow.studentcalendarepo
.all包括(i=>i.日历,i=>i.学生,i=>i.日历.学校)
.其中(w=>w.Calendar.School.District.Project.ProjectId==CurrentProjectId&&
(w.Grade==CurrentCohortTrack.LowerGradeLevel||
w、 等级==CurrentCohortTrack.UpperGradeLevel)
.GroupBy(g=>g.StudentId)
.Select(s=>s.OrderByDescending(o=>o.EnrolledStartDate)
.FirstOrDefault());
有人能告诉我如何得到预期的结果吗?
任何帮助都将不胜感激。

在使用投影(选择)时,可能会忽略重复的,简而言之,
Include
。此外,这里还有一项工作,在投影后的最后使用
Include
,我认为它也应该适用于您的情况(使用分组方式看起来更复杂)。