在Entity框架中全局禁用动态代理 [英] disable dynamic proxy in Entity framework globally

查看:161
本文介绍了在Entity框架中全局禁用动态代理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

请如何禁用在Entity Framework 5中创建的所有实体的动态代理。



目前,我正在设置这个espEntities.Configuration.ProxyCreationEnabled = false;在dbcontext的每一个实例中,有一种方法可以为当前和未来的模型做一次任务。



Tahnks

解决方案

方法1



如果您有EDMX模型,被创建使用它,并在 OnContextCreated 中,您可以禁用 ProxyCreationEnabled

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

方法2 p>

编辑model.tt文件。找到包含这样的行:

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

并添加

  this.Configuration.ProxyCreationEnabled = false; 

方法3



如果您不使用EDMX文件,请在上下文构造函数中执行(假定您的上下文称为EspEntities)

  public class EspEntities:DbContext 
{
public EspEntities()
{
Configuration.ProxyCreationEnabled = false;
}
}


Please how can I disable dynamic proxies for all entities created in Entity Framework 5.

Currently, I am setting this espEntities.Configuration.ProxyCreationEnabled = false; in every instance of a dbcontext is there a way I can do this for current and future models as a one time task.

Tahnks

解决方案

Method 1

If you have an EDMX model, a partial class is created. Use that and in the OnContextCreated you can disable ProxyCreationEnabled

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

Method 2

Edit the model.tt file. Find the line containing something like this:

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

And add in

this.Configuration.ProxyCreationEnabled = false;

Method 3

If you are not using an EDMX file, do it in your context constructor: (assuming your context is called EspEntities)

public class EspEntities : DbContext
{
   public EspEntities()
   {
      Configuration.ProxyCreationEnabled = false;
   }
}

这篇关于在Entity框架中全局禁用动态代理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆