我知道如何将验证错误添加到模型状态。我知道如何将验证注释添加到我的模型类中。问题是,首先使用数据库,我不想接触生成的代码,因为当我重新生成时,我将失去我的自定义。我总是尝试在部分中进行自定义,但是您不能在部分中为现有属性添加注释。
这里的最佳做法是什么?
我知道如何将验证错误添加到模型状态。我知道如何将验证注释添加到我的模型类中。问题是,首先使用数据库,我不想接触生成的代码,因为当我重新生成时,我将失去我的自定义。我总是尝试在部分中进行自定义,但是您不能在部分中为现有属性添加注释。
这里的最佳做法是什么?
你需要利用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; }
}
您需要将 EDMX 文件和实体分开:
更新 EDMX 模型后,您需要手动将新生成的实体的更改应用于 Data.Contracts 项目的实体。