use*_*865 15 c# entity-framework
请问如何禁用在Entity Framework 5中创建的所有实体的动态代理.
目前,我espEntities.Configuration.ProxyCreationEnabled = false;在每个实例中设置这个 DbContext是否有一种方法可以将当前和未来模型作为一次性任务执行此操作.
谢谢
Dav*_*idG 26
方法1
如果您有EDMX模型,则会创建一个分部类.使用它,OnContextCreated你可以禁用ProxyCreationEnabled
public partial class MyModelContainer
{
public void OnContextCreated()
{
this.Configuration.ContextOptions.ProxyCreationEnabled = false;
}
}
Run Code Online (Sandbox Code Playgroud)
方法2
编辑model.tt文件.找到包含以下内容的行:
partial class <#=code.Escape(container)#> : DbContext
Run Code Online (Sandbox Code Playgroud)
并加入
this.Configuration.ProxyCreationEnabled = false;
Run Code Online (Sandbox Code Playgroud)
方法3
如果您没有使用EDMX文件,请在您的上下文构造函数中执行:(假设您的上下文称为EspEntities)
public class EspEntities : DbContext
{
public EspEntities()
{
Configuration.ProxyCreationEnabled = false;
}
}
Run Code Online (Sandbox Code Playgroud)