【问题标题】:Validate attributes through edmx通过 edmx 验证属性
【发布时间】:2012-03-13 10:03:48
【问题描述】:

我正在开发一个 MVC3 项目我在 SQL Server 2008 上创建了我的数据库,然后我使用实体数据模型添加它,现在我有了 .edmx 我不想生成类的代码,因为直到现在它不稳定,我觉得除了进行验证之外没有必要这样做 我想知道是否有一种方法可以直接使用 .edmx 进行验证而不生成类的代码 需要服务器和客户端验证 干杯

【问题讨论】:

    标签: asp.net-mvc-3 validation ado.net-entity-data-model edmx


    【解决方案1】:

    你不能在 edmx 中做到这一点。但是,您可以拥有将元数据添加到 edmx 生成的类的类。

    这会将包含类的元数据添加到由 edmx 生成的类中:

    [MetadataTypeAttribute(typeof(CustomerMetadata))]
    public partial class Customer
    {
    }
    

    然后你就有了具有元数据属性的元数据类:

    internal sealed class CustomerMetadata
    {
        public int ID;
    
        [Required]
        [StringLength(60)]
        public string Name;
    }
    

    编辑: EF 生成它的所有类作为部分。这意味着您可以将不同文件中的功能添加到同一个类。我们使用此功能添加一个属性,告诉 .net 有一个具有元数据信息的类。在这种情况下,具有 Customer 类元数据的类是 CustomerMetadata

    它具有您希望用元数据修饰的所有属性。在这种情况下,实际上并不需要 ID。

    【讨论】:

    • 所以我必须在模型文件夹中添加一个与表同名的部分类,并使用 MetadataTypeAttribute 对属性进行验证。我不知道我是否清楚如何进行
    【解决方案2】:

    (我会将此添加为评论,但我还没有足够的声望点) 确保分部类中的命名空间与 EF 生成的类的命名空间完全匹配,包括正确的大小写。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-25
      • 2011-12-28
      • 2012-12-23
      • 2016-12-04
      • 1970-01-01
      相关资源
      最近更新 更多