我想覆盖由实体框架模型生成的实体的ToString
,Equals
和GetHashCode
方法。
这可能是最好的方法吗?
现在我手动编辑生成模型的___Model.Designer.cs
文件,但每次更改模型时,我都会丢失这些更改。
答案 0 :(得分:16)
每个实体都被定义为一个部分类,因此您可以定义一个额外的部分类,以使用其他属性或方法扩展实体。
假设您已在EntityModel中定义了实体Person
。
现在,您可以在项目中创建新的类文件名Person.cs
。在类文件中,您可以定义
public partial class Person{
// Here you can add your additional functionality or method overrides
}
必须在与Person
实体相同的命名空间和相同的程序集中定义分部类。
新类文件不受EntityModel中更改的影响(仅当您删除实体或更改属性时,您的部分类可能需要更新)。