Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
C# 我可以同时使用快速加载和延迟加载吗?_C#_Entity Framework_Entity Framework 6 - Fatal编程技术网

C# 我可以同时使用快速加载和延迟加载吗?

C# 我可以同时使用快速加载和延迟加载吗?,c#,entity-framework,entity-framework-6,C#,Entity Framework,Entity Framework 6,我有一个延迟加载的模型类。到目前为止,我一直使用惰性加载,例如加载单个学生的课程集 如果我想用所有注册学生的集合加载所有课程,我可以使用Include方法在一个属性上进行即时加载,而在属性上进行延迟加载吗?有副作用吗 [外国密钥ID] 公共虚拟ICollection学生{get;set;} 是的,你可以。Include就是这样做的,它包括相关的实体:它强制加载它们,而它们通常不加载。您可以添加eninclude,以便更深入地了解关系阶梯,因为它允许加载与先前包含的实体相关的数据。 但是,返回的实

我有一个延迟加载的模型类。到目前为止,我一直使用惰性加载,例如加载单个学生的课程集

如果我想用所有注册学生的集合加载所有课程,我可以使用Include方法在一个属性上进行即时加载,而在属性上进行延迟加载吗?有副作用吗

[外国密钥ID] 公共虚拟ICollection学生{get;set;} 是的,你可以。Include就是这样做的,它包括相关的实体:它强制加载它们,而它们通常不加载。您可以添加eninclude,以便更深入地了解关系阶梯,因为它允许加载与先前包含的实体相关的数据。 但是,返回的实体是阶梯中最高的实体,而不是最新的实体。 在下面的示例中,将返回一个IQueryable,其中加载了课程实体,并且在课程内部加载了学生


没有问题,没有副作用。
public IQueryable<Students> GetCoursesWithAllStudents()
{
     return db.Courses.Include(c => c.Students);
}
public IQueryable<Professors> GetCoursesWithAllStudents()
{
     return db.Professors.Include(professor => professor.Courses)
                         .ThenInclude(course => course.Students);
}