Отключить динамический прокси-сервер в инфраструктуре Entity во всем мире

Как я могу отключить динамические прокси для всех объектов, созданных в Entity Framework 5.

В настоящее время я устанавливаю это espEntities.Configuration.ProxyCreationEnabled = false; в каждом случае dbcontext есть способ, которым я могу сделать это для текущих и будущих моделей как одноразовую задачу.

Tahnks

Ответы

Ответ 1

Метод 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;
   }
}