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文件(删除表或从数据库添加新表)时,都会重建此文件。所以我做的这个改变就迷失了。
如何保留此更改?这有配置设置吗?
答案 0 :(得分:2)
您不应修改任何生成的文件。改为修改T4模板。在解决方案资源管理器中打开EDMX模型的树,在这里找到名为* .Context.tt的文件,打开它并修改创建ctor的部分。在我的情况下,这是在模板的第60行。
保存tt-File后,它会自动运行并创建所需的代码。每次修改和保存EDMX模型时,都会恢复这些更改。
顺便说一下:您可能无法覆盖部分类中的现有ctor。但一般来说,部分类文件也是扩展具有更多功能的生成对象的好方法。