2013-12-09 53 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实体框架修改Context.cs文件更改不会持续

问题我每次更改edmx文件(删除表或从数据库添加新表)时,都会重新构建该文件。所以我做的这个改变就会丢失。

我该如何保留这个改变?有没有这样的配置设置?

回答

2

您不应该修改任何生成的文件。改为修改T4模板。在解决方案资源管理器中打开EDMX-Model的树,在这里找到名为* .Context.tt的文件,将其打开并修改创建ctor的部分。在我的情况下,这是在模板的第60行。

保存tt文件后,它会自动运行并创建您想要的代码。每次修改和保存EDMX模型时,这些更改都会恢复。

顺便说一句:你可能不会覆盖部分类中的现有ctor。但是通常,部分类文件也是扩展具有更多功能的生成对象的好方法。