2013-12-09 4 views
0
public MyEntities() 
     : base("name=MyEntities") 
    { 
     /* 
     * If DbContext.Configuration.ProxyCreationEnabled is set to false, 
     * DbContext will not load child objects for some parent object unless Include method is called on parent object.    
     * Reference: https://stackoverflow.com/questions/4596371/what-are-the-downsides-to-turning-off-proxycreationenabled-for-ctp5-of-ef-code-f 
     */ 

     this.Configuration.ProxyCreationEnabled = false; 
    } 

Я изменил файл MyDataModel.Context.cs. Я сослался на this Link.Изменения в инфраструктуре Entity Framework Изменения в Context.cs не сохраняются

Проблема, с которой я сталкиваюсь, - каждый раз, когда я меняю файл edmx (удаляю таблицу или добавляю новую таблицу из базы данных), этот файл восстанавливается. Так что это изменение меня потеряло.

Как сохранить это изменение? есть ли настройка конфигурации для этого?

ответ

2

Нельзя изменять какие-либо сгенерированные файлы. Вместо этого измените шаблон T4. В обозревателе решений откройте дерево вашей EDMX-модели, здесь вы найдете файл с именем * .Context.tt, откройте его и измените раздел, в котором создается ctor. В моем случае это находится в строке 60 шаблона.

После сохранения tt-файла он нормально запускается и создает нужный код. Эти изменения восстанавливаются при каждом изменении и сохранении EDMX-модели.

КПП: Вы не можете переопределить существующий ctor в частичном классе. Но в целом частичные файлы классов также являются хорошим способом расширения сгенерированных объектов с дополнительной функциональностью.

Смежные вопросы