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