我在理解 Entity Framework 5 中的延迟加载时遇到问题。我知道在使用延迟加载时,相关实体在请求之前不会加载:
“使用延迟加载时,您的初始查询仅引入目标实体集。但每当您访问导航属性时,都会针对商店发出另一个查询以加载相关实体。(参考)”
我有一个包含两个类的 ASP.NET Web API 项目:
public class Farm
{
public int FarmId { get; set; }
public virtual ICollection<LandUnit> LandUnits { get; set; }
...
}
public class LandUnit
{
public int LandUnitId { get; set; }
...
}
我设置了 LazyLoadingEnabled = true,并让我的 POCO 类符合指南(参考),但是当我使用脚手架创建 FarmController 并通过 fiddler 调用它时,它显示:
JSON
{}
...
LandUnits
{}
...
如果我设置 LazyLoadingEnabled = false,那么我得到:
JSON
{}
...
LandUnits=(null)
我是否误解了延迟加载的基础知识?在我看来,正在发生的事情与定义所说的相反。关闭延迟加载时,不会加载相关实体。开启延迟加载时,会加载相关实体。