Entity framework 实体框架5:延迟加载如何在不同类型的关系中工作?
我使用的是实体框架5,MVC4。我的Entity framework 实体框架5:延迟加载如何在不同类型的关系中工作?,entity-framework,lazy-loading,entity-relationship,asp.net-mvc-5,Entity Framework,Lazy Loading,Entity Relationship,Asp.net Mvc 5,我使用的是实体框架5,MVC4。我的用户具有以下关系: 用户配置文件:1对1关系。(一个用户有一个配置文件) 用户帖子:1对多关系。(一个用户有许多帖子) 用户角色:多对多关系(一个用户有多个角色,一个角色可能分配给多个用户) 我的问题是,根据这些关系的每种类型,延迟加载是如何工作的,以及“深度”有多深?当我从上下文中获取用户时,将加载什么 任何帮助都将不胜感激 延迟加载背后的思想是实体框架只加载您试图访问的信息。考虑以下事项: using (MyContext context = new My
用户
具有以下关系:
用户配置文件
:1对1关系。(一个用户有一个配置文件)
用户帖子
:1对多关系。(一个用户有许多帖子)
用户角色
:多对多关系(一个用户有多个角色,一个角色可能分配给多个用户)
我的问题是,根据这些关系的每种类型,延迟加载是如何工作的,以及“深度”有多深?当我从上下文中获取用户时,将加载什么
任何帮助都将不胜感激 延迟加载背后的思想是实体框架只加载您试图访问的信息。考虑以下事项:
using (MyContext context = new MyContext())
{
User myUser = context.Users.First();
}
在此示例中,仅加载用户
对象。在首次访问相关实体之前,不会从数据库中检索它们
using (MyContext context = new MyContext())
{
User myUser = context.Users.First(); // User is loaded from database
Profile myProfile = myUser.Profile; // Associated profile is loaded
}
在第二个示例中,有两个数据库调用—一个用于加载用户,另一个用于在首次访问概要文件时加载概要文件
using (MyContext context = new MyContext())
{
User myUser = context.Users.First(); // User is loaded from database
Profile myProfile = myUser.Profile; // Associated profile is loaded
}
所有三种类型的关系(一对一、一对多、多对多)都具有相同的行为:相关对象在首次访问之前不会加载。检查此文档: