在EF4中,延迟加载似乎是默认启用的。至少,在我的项目中,我可以看到
dataContext.ContextOptions.LazyLoadingEnabled
默认情况下为true。我不想要延迟加载,也不想写:
dataContext.ContextOptions.LazyLoadingEnabled = false;
每次我得到一个新的上下文。那么,有没有一种方法可以在默认情况下关闭它,比如在整个项目中?
发布于 2011-10-03 10:59:19
我写了一个显示how the new Lazy Loading features work with EF Code First的快速示例。要在Code First模型中实现您想要的功能,只需向DbContext的构造函数添加一行代码,如下所示:
public BlogContext()
{
this.Configuration.LazyLoadingEnabled = false;
}
发布于 2013-03-25 07:20:10
如果您可能首先使用EF4代码,是吗?因此,在您的上下文的初始化中,有'OnModelCreated‘的覆盖。
在此方法中,我只需调用并设置属性,所有问题都已解决。
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
base.Configuration.LazyLoadingEnabled = false;
}
我的模型现在更容易接受了。懒惰加载是great...but,当你不想要它的时候。当你开始使用循环引用的时候,这是非常可笑的。
发布于 2013-05-30 13:35:37
您也可以在设计器中执行此操作。只需打开.edmx文件,右键单击模型上的任意位置,然后选择属性。然后将LazyLoadingEnabled
设置为false。
https://stackoverflow.com/questions/2967214
复制相似问题