全局禁用实体框架中的动态代理

本文关键字:动态 代理 框架 实体 全局 | 更新日期: 2023-09-27 18:12:22

如何禁用实体框架中创建的所有实体的动态代理?

目前,我在DbContext的每个实例中都设置了这个espEntities.Configuration.ProxyCreationEnabled = false;,是否有一种方法可以将当前和未来的模型作为一次性任务。

谢谢

全局禁用实体框架中的动态代理

方法1

如果您有一个EDMX模型,则会创建一个部分类。在OnContextCreated中,你可以禁用ProxyCreationEnabled

public partial class MyModelContainer
{
    public void OnContextCreated()
    {
        this.Configuration.ContextOptions.ProxyCreationEnabled = false;
    }
}

方法2

编辑模型。tt文件。查找包含如下内容的行:

partial class <#=code.Escape(container)#> : DbContext

并加入

this.Configuration.ProxyCreationEnabled = false;
方法3

如果你不使用EDMX文件,在你的上下文构造函数中做:(假设你的上下文被称为EspEntities)

public class EspEntities : DbContext
{
   public EspEntities()
   {
      Configuration.ProxyCreationEnabled = false;
   }
}
相关文章: