1

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

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

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

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

虽然我知道我遇到的是数据库优先方法的限制,但我怀疑有一种方法可以更改/自定义 POCO,并且不会因每次重新刷新而丢失。

4

1 回答 1

1

您至少有 2 个选项:

  1. 在分部类上实现IValidatableObject接口并提供Validate方法。
  2. 正如 Eranga 提到的,使用该MetadataType属性将验证属性移动到具有相同属性的另一个类。

覆盖OnModelCreating仅适用于代码优先,而不是模型/数据库优先的选项。

于 2012-09-04T04:46:08.493 回答