阻止编译器在T4类Entity Framework中停止撤消我的更改

时间:2015-03-31 05:10:39

标签: entity-framework t4

我正在使用Entity Framework并希望在上下文类中进行一些更改

对于前。我正在为连接字符串创建另外一个构造函数,但每次打开.edmx文件并保存它时都会出现问题,然后我的更改不再存在。

有没有办法告诉.edmx不要撤消我在上下文类或T4类中的更改?

2 个答案:

答案 0 :(得分:5)

您无法更改生成的代码。您可以添加内容,因为生成的类是部分类。

将您的添加内容添加到包含分部类的自定义部分的单独文件中。

见这里:https://msdn.microsoft.com/en-us/library/wa80x488.aspx

答案 1 :(得分:0)

另一种方法是自己修改T4模板,并始终将您的特定需求应用于生成的类。 例如,当您希望INotifyPropertyChanged作为每个类的接口时,通常会这样做。 此方法仅适用于您的更改本质上是通用的。如果您只想在一个类中进行特定更改,则此解决方案不适合您。

另一种方法是首先使用代码完全控制类。 您可以使用特殊属性标记方法和属性,以将它们映射到db。还有一个逆向工程选项可以从现有数据库创建这些类。您将进行一次逆向工程,然后控制这些类并根据您的需要调整它们

我现在通常采用最后一种方法,因为它不使用部分类,所有属于类的代码都在同一个文件中。

Maarten的答案也很好,但还有2个选项。