修改Context.cs文件更改的实体框架不会保留

时间:2013-12-09 03:53:42

标签: asp.net-mvc-4 entity-framework-5

 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

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

如何保留此更改?这有配置设置吗?

1 个答案:

答案 0 :(得分:2)

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

保存tt-File后,它会自动运行并创建所需的代码。每次修改和保存EDMX模型时,都会恢复这些更改。

顺便说一下:您可能无法覆盖部分类中的现有ctor。但一般来说,部分类文件也是扩展具有更多功能的生成对象的好方法。