使用Database First模型(EF 5)向模型添加验证

时间:2012-10-12 20:24:21

标签: entity-framework validation annotations database-first

我知道如何将验证错误添加到模型状态。我知道如何将验证注释添加到我的模型类中。问题是,首先使用数据库,我不想触摸生成的代码,因为当我重新生成时,我将失去我的自定义。我总是尝试自定义部分,但是你不能在部分中为现有属性添加注释。

这里的最佳做法是什么?

2 个答案:

答案 0 :(得分:1)

您需要利用MetadataTypeAttribute

做这样的事情:

创建一个新的类文件,将其保存在与分部类相同的命名空间中。即使您从数据库更新模型,此新类也将保留验证规则。修改新类文件的内容,如下所示,更改为您的规格等。

[MetadataTypeAttribute(typeof(YourCustomClassForValidation))]
public partial class Person
{
   // No need to put anything here because you already defined these properties
}

public class YourCustomClassForValidation
{
   [DisplayName("Full Name")]
    public string name { get; set; }
}

答案 1 :(得分:0)

您需要将EDMX文件和实体分开:

  • EDMX文件可以放在Scaffolding项目中。
  • 实体可以放在Data.Contracts项目中。

更新EDMX模型后,您需要从Data.Contracts项目的实体上手动应用新生成的实体的更改。