根据MSDN中的几篇文章,我知道您只需添加:
this.Configuration.LazyLoadingEnabled = false;
this.Configuration.ProxyCreationEnabled = false;
在EDMX文件附带的context.cs文件中,或编辑context.tt文件以在重新生成EDMX文件时添加这些行。
但是,我注意到,当数据库字段发生更改(特别是删除它们),并且ADO.NET文件被替换时,必须重新进行更改。当我必须重新创建ADO.NET文件时,有没有一个地方可以永久添加要包含在context.cs文件中的行?
我确实注意到这篇关于SO的文章接近这个问题,但没有接近:
在Entity Framework 4 中默认禁用延迟加载
EDMX生成的类是分部类,因此您可以在另一个文件中编写此类中的代码。
所以你将创建另一个文件,它的内容你将"创建"相同的类:
namespace Same.Namespace.FromOtherContextClass
{
public partial class Context : DbContext
{
public Context()
{
this.Configuration.LazyLoadingEnabled = false;
this.Configuration.ProxyCreationEnabled = false;
}
}
}
记住,在这个文件中必须有相同的名称空间。
@AlbertoMonterio的想法是正确的。
这是有效的代码:
using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using CorporateWeb.API.Model;
namespace CorporateWeb.API.DAL
{
public partial class context : DbContext
{
public context() : base("name=Corporate_WebEntities")
{
this.Configuration.LazyLoadingEnabled = false;
this.Configuration.ProxyCreationEnabled = false;
}
}
}