Dotnet核心实体框架-然后包括在哪里

时间:2018-12-13 09:34:41

标签: entity-framework .net-core

假设您具有以下实体所有权

School ||---|< Course >|--|< Student

有史以来最差的绘画,但是学校可以有几个课程,而课程可以有多个学生

在EF中,我通常会这样做,以获取所有数据:

return _db.School
       .Include(t => t.Classes)
       .ThenInclude(c => c.Course)
       .ThenInclude(s => s.Student)

但是可以说,我只想要名字为 Billy 的学生。 然后我想我可以这样

return _db.School
           .Include(t => t.Classes)
           .ThenInclude(o => o.Course)
           .ThenInclude(o => o.Student.Where(s => s.Studen.name.Equals( "Billy"))

据我所知不可能,所以我这样做是这样的:

return _db.School
     .Select(school => new School()
           {
               Id = school.Id
               Name = school.Name
               Courses = school.Courses.Select(courses => new Course() 
                    {
                       Id = course.Id,
                       Name = course.Name
                       Students = course.Students.Select(student => new Student()
                           {
                               Id = student.Id,
                               Name = student.Name
                           }).Where(s => s.Name.Equals("Billy"));
                     })
               });
etc....

必须有更好的方法吗?有什么建议吗?

该代码只是被模拟的,因此可能是一堆语法错误和错别字。但是你明白了。

0 个答案:

没有答案