我创建了一个edmx,在designer.cs文件中我有3个构造函数。在每个构造函数中,我添加了以下行:
this.Configuration.LazyLoadingEnabled = false;
但是当我创建一个新的DBContext时,启用了延迟加载,因为当我创建一个新的DBContext时,没有使用任何这个构造函数。
使用哪些构造函数创建新的DBContext?
编辑:我没有先使用代码。我从SQL Server数据库创建了edmc。
感谢。
答案 0 :(得分:3)
您可以转到EDMX文件,属性,还有一个属性Lazy Loading。只是把它弄错了。
此致
<强> ============== EDIT =============== 强>
你不拥有这个吗?==新编辑==
答案 1 :(得分:1)
我认为EDMX设计时画布属性上有一个属性可以禁用延迟加载。 edmx文件在ConceptualModel和EntityContainer定义中具有延迟加载的属性,您可以将延迟加载设置为false:
<EntityContainer Name="MyEntitiesContext" annotation:LazyLoadingEnabled="false">
答案 2 :(得分:1)
edmx设计属性上的属性称为LazyLoadingEnabled
- 默认为true。
这在T4模板(MyModel.Context.tt)中使用如下:
public <#=Code.Escape(container)#>()
: base("name=<#=container.Name#>")
{
<#
WriteLazyLoadingEnabled(container);
#>
}
如果禁用该属性,将写出以下内容:
this.Configuration.LazyLoadingEnabled = false;
如果FWR属性在EDMX设计器中不可见,则可以删除条件代码生成,并对其进行硬编码:
public <#=Code.Escape(container)#>()
: base("name=<#=container.Name#>")
{
this.Configuration.LazyLoadingEnabled = false;
// more setup here, e.g. this.Configuration.ProxyCreationEnabled = false;
}