3

我创建了一个 edmx,在 Designer.cs 文件中我有 3 个构造函数。在每个构造函数中,我添加以下行:

this.Configuration.LazyLoadingEnabled = false;

但是,当我创建一个新的 DBContext 时,延迟加载被启用,因为当我创建一个新的 DBContext 时,没有使用任何这个构造函数。

哪些构造函数用于创建新的 DBContext?

编辑:我没有先使用代码。我从 SQL Server 数据库创建我的 edmc。

谢谢。

4

3 回答 3

3

您可以转到 EDMX 文件、属性,并且有一个属性 Lazy Loading。只是把它设置为假。

问候,

==============编辑================

你没有这个吗? 在此处输入图像描述

==新编辑== 在此处输入图像描述

于 2013-05-28T09:46:26.993 回答
1

I think there's a property on the EDMX design time canvas properties to disable lazy loading. The edmx file has in the ConceptualModel and EntityContainer definition an attribute for lazy loading where you can set lazy loading generally to false:

<EntityContainer Name="MyEntitiesContext" annotation:LazyLoadingEnabled="false">

ref: Disable lazy loading by default in Entity Framework 4

于 2013-05-28T09:43:11.637 回答
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;    
}
于 2013-05-28T09:44:38.060 回答