请如何为在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;
   }
}

关于c# - 全局禁用 Entity Framework 中的动态代理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24674310/

10-16 16:11