我是mvc 5的新手,我想构建一个asp.net应用程序来与现有数据库进行交互。我使用的是VIsual studio 2013和Entity Framework 6.
我已经从现有数据库生成了ADO.net实体数据模型,我目前正在尝试找出进行数据验证的最佳方法,以避免错误的输入(让我们采取行动)例如来自实体用户的字段电子邮件)。 正确的方法似乎是在部分类上使用Annotations。但是,如果原始属性声明在自动生成的文件中,我不知道如何添加注释(在我为其创建的新部分类上)。
自动生成的类,如下所示:
namespace Test.Models
{
...
public partial class Users
{
public string Email { get; set; }
}
...
}
按照[这篇文章](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)"公共字符串电子邮件",表示该属性已经被声明(这听起来对我而言)的错误。
我应该如何在新的分部类上注释自动生成模型上声明的属性? 可以定义要在anotation上使用的正则表达式吗?
感谢您的时间,
约翰
答案 0 :(得分:0)
你快到了。 UserMetadata
实际上是您应用注释的另一个类。我通常把这两个放在同一个文件中。
[MetadataType(typeof(UsersMetaData))]
public partial class Users
{
}
class UsersMetaData
{
[Someanotations]
public string Email { get; set; }
}