entity-framework - 使用 Entity Framework 数据模型添加验证属性

标签 entity-framework asp.net-mvc-4

2015 年 2 月前言 如果您仍在使用 Entity Framework EDMX,请帮自己一个忙并使用 Entity Framework Code First 结帐。不同之处在于您的表是从您的模型类创建的,而不是在 EDMX 中,您的模型类是用您的表创建的。这是一个更简单的解决方案,这个问题中的问题甚至不存在!

Getting Started with Entity Framework 6 Code First using MVC 5

我有一个现有的 SQL 数据库,我使用 ADO.NET Enity 数据模型作为模型。我正在尝试将一些 CRUD 功能构建到我的 MVC 应用程序中。

在我找到的有关该主题的所有教程中,他们从头开始构建模型并将属性添加到模型类。例如:

    [Required]
    [StringLength(10)]
    public string Name { get; set; }

然而,模型类是自动生成的,所以我认为改变它们是一个坏主意(如果数据库模型被刷新,无论如何都会被覆盖)。

我将如何添加验证属性?

最佳答案

您可以创建一个与 EF 生成的类分开的分部类来存储元数据。

//Contact.cs - The original auto-generated file 
[System.ComponentModel.DataAnnotations.MetadataType(typeof(ContactMetadata))]
public partial class Contact
{
    public int ContactID { get; set; }
    public string ContactName { get; set; }
    public string ContactCell { get; set; }
}

//ContactMetadata.cs - New, seperate class

using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
internal sealed class ContactMetadata
{
    [Required(ErrorMessage = "Name is required.")]
    [StringLength(5)]  
    public string ContactName;
}

关于entity-framework - 使用 Entity Framework 数据模型添加验证属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14059455/

相关文章:

entity-framework - Entity Framework 4 SaveChanges 不起作用并且没有抛出任何错误?

c# - 在 Entity Framework 中恢复已删除的导航属性

c# - 在同一方法中抛出并捕获异常

asp.net-mvc-4 - droplink 的 sitecore mvc 值

asp.net-mvc - 如何使操作过滤器导致过滤后的操作返回 HttpNotFoundResult?

asp.net-mvc-4 - MVC 4 中客户 URL 的自定义 OpenIdClient

c# - 返回具有匿名类型的已过滤 IQueryable<T>

c# - Linq to Entities Query 中的 .Include() .Where() .Select()

asp.net-mvc - 模型中的一个变量在 http post 后变为空

c# - 处理将操作参数绑定(bind)到不正确类型的路由值的错误