如何自定义POCO并且不会因数据库刷新而丢失更改

时间:2012-09-04 04:02:55

标签: entity-framework-4 entity-framework-4.1

在MVC 3环境中使用EF 4.1。我也在使用我用NUGET下载的POCO生成工具。

我正在寻找一种方法来“自定义”具有验证属性的POCO类,而不会在每次数据库更改时丢失这些更改(并执行重新同步)。

我尝试过创建抽象类并实例化一个继承的类,但是EF强迫我通过EDMX文件创建一个具体的类,这个后代类也成为一个生成的POCO,每次数据库同步都会“刷新”。

我注意到POCO是部分类,这意味着我可以在不同的文件中添加类的成员,但这种方法不允许我添加到现有成员。

虽然我明白我遇到的是数据库第一种方法的局限性,但我怀疑有一种方法可以改变/定制POCO,而不会因为每次重新刷新而丢失。

1 个答案:

答案 0 :(得分:1)

您至少有两个选项:

  1. 在您的分部课上实施IValidatableObject界面,并提供Validate方法。
  2. 正如Eranga所提到的,使用MetadataType属性将验证属性移动到另一个类 with the same properties.
  3. 覆盖OnModelCreating仅适用于代码,而不是模型/数据库中的选项。