【问题标题】:MVC5 website newbie / Annotations on properties of autogenerated modellMVC5 网站新手/关于自动生成模型属性的注释
【发布时间】:2014-03-17 21:19:51
【问题描述】:

我是 mvc 5 的新手,我想构建一个 asp.net 应用程序来与现有数据库进行交互。我正在使用 VIsual studio 2013 和 Entity Framework 6。

我已经从现有数据库生成了一个 ADO.net 实体数据模型,我目前正在尝试找出进行数据验证的最佳方法,以避免输入错误(让我们以实体用户的电子邮件字段为例)。 正确的方法似乎是在部分类上使用注释。但是如果原始属性声明在自动生成的文件上,我不知道如何添加注释(在我为此创建的新部分类上)。

自动生成的类,如下所示:

namespace Test.Models
{
...
    public partial class Users
        {
        public string Email { get; set; }
        }
...
}

按照 [this post] (Add data annotations to a class generated by entity framework) 背后的想法,我正在尝试创建一个部分类来在那里编写注释,如下所示:

namespace Test.Models
{
    using System.ComponentModel.DataAnnotations;

    [MetadataType(typeof(UsersMetaData))]
    public partial class Users
    {
         [Someanotations]
         public string Email { get; set; }
    }

}

但在部分课程中,我得到: 1) “[MetadataType(typeof(UsersMetadata))]”行出错,说找不到UsersMetadata,和 2)“公共字符串电子邮件”行出错,表示该属性已被声明(这对我来说听起来很逻辑)。

我应该如何在新的部分类上注释自动生成模型上声明的属性? 是否可以定义一个正则表达式用于注解?

感谢您的宝贵时间,

约翰

【问题讨论】:

  • 我想保留自动生成的类以使用它们

标签: annotations asp.net-mvc-5


【解决方案1】:

你快到了。 UserMetadata 实际上是您应用注释的另一个类。我通常将这两个放在同一个文件中。

[MetadataType(typeof(UsersMetaData))]
public partial class Users
{

}
class UsersMetaData
{
    [Someanotations]
    public string Email { get; set; }
}

【讨论】:

  • @user3425557 没问题,请务必检查答案是否已接受并点赞
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-18
  • 2019-03-24
  • 1970-01-01
  • 1970-01-01
  • 2016-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多