ado*_*ojp 4 database many-to-many entity-framework eager-loading ef-code-first
为了清楚起见,我将给出我能想到的最基本的例子.
可以说我有两个以下形式的实体:
public class Student
{
public int Id {get;set}
public string FullName {get;set;}
public virtual ICollection<Course> Courses {get;set;}
}
public class Courses
{
public int Id {get;set;}
public string FullName {get;set;}
public virtual ICollection<Student> Students {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
这两个实体映射到三个表,第三个表是连接的表.
当我像这样查询学生时
var allStudents = context.Students;
Run Code Online (Sandbox Code Playgroud)
然后遍历结果以显示学生及其课程列表
foreach (var student in allStudents)
{
display(student.FullName);
foreach (var course in student.Courses)
{
display(course.FullName);
}
}
Run Code Online (Sandbox Code Playgroud)
我得到第一个查询返回的每个学生的课程查询.
如何通过一个查询告诉实体框架急切地将课程加载到学生中?
Bro*_*ass 11
您希望Include()查询指示您要急切加载相关Course实体:
var allStudents = context.Students.Include( s => s.Courses);
Run Code Online (Sandbox Code Playgroud)
还要确保你有一个
using System.Data.Entity;
Run Code Online (Sandbox Code Playgroud)
在您的代码文件中,以便您可以使用强类型Include()扩展方法.