entity-framework - 使用数据库优先模型 (EF 5) 向模型添加验证

标签 entity-framework validation annotations database-first

我知道如何将验证错误添加到模型状态。我知道如何将验证注释添加到我的模型类中。问题是先用Database,我不想碰生成的代码,因为当我重新生成时,我会失去我的自定义。我总是尝试在部分中进行自定义,但是您不能在部分中向现有属性添加注释。

这里的最佳实践是什么?

最佳答案

您需要利用 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; }
}

关于entity-framework - 使用数据库优先模型 (EF 5) 向模型添加验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12866576/

相关文章:

c# - Entity Framework 具有相同键的两个不同对象不起作用

.net - 使用 DataAnnotations 与 WPF 和 Entity Framework 验证数据?

javascript - 欧芹远程验证

matlab - 是否可以设置matlab在运行前验证可达函数

java - JBOSS 网络服务注解

c# - 添加迁移失败,因为未安装 EntityFrameworkCore.Tools

android - 使用 android webkit 验证 HTML5 输入 type=number 的最大和最小值是多少?

java - JPA实体可以从接口(interface)方法继承@Version吗?

java - 让单个 Java 注解隐式设置多个注解

c# - 如何在 Entity Framework 中处理这种层次结构