简而言之:称为不同实体加载的效果。在 Entity Framework 中,有三种加载方式:惰性加载、显式加载和急切加载方法,您可以从中选择,并在代码中相应地使用它们。
换句话说,Entity Framework 支持三种加载相关实体的方式:
本文详细讨论了上面显示的这三种技术 -加载相关实体。
您下面的代码片段正在使用热切加载:
context.Resources.Include(x => x.Variations).First();
只有前者似乎对我有用,但我找不到任何解释为什么需要它?
后面的代码片段(没有 的那个.First()
)对你不起作用,因为相关实体的加载可以使用急切加载(参见上面的急切加载相关实体)或Load 方法来实现:
context.Resources.Include(x => x.Variations).Load();
// or a sample like
// Load the posts related to a given blog
context.Entry(blog).Collection(p => p.Posts).Load();
编辑:如果由于某种原因您对延迟加载感到困惑,那么您可以使用该选项在 context 中将其关闭。
public MyContext()
{
this.Configuration.LazyLoadingEnabled = false;
}