使用Entity Framework时,在实体中覆盖ToString,Equals,..

时间:2011-04-15 06:02:15

标签: visual-studio entity-framework override

我想覆盖由实体框架模型生成的实体ToStringEqualsGetHashCode方法。

这可能是最好的方法吗?

现在我手动编辑生成模型的___Model.Designer.cs文件,但每次更改模型时,我都会丢失这些更改。

1 个答案:

答案 0 :(得分:16)

每个实体都被定义为一个部分类,因此您可以定义一个额外的部分类,以使用其他属性或方法扩展实体。

假设您已在EntityModel中定义了实体Person

现在,您可以在项目中创建新的类文件名Person.cs。在类文件中,您可以定义

public partial class Person{
   // Here you can add your additional functionality or method overrides
}

必须在与Person实体相同的命名空间和相同的程序集中定义分部类。

新类文件不受EntityModel中更改的影响(仅当您删除实体或更改属性时,您的部分类可能需要更新)。