在entity framework中使用DataAnnotations
我已经使用VS2010的entity framework来创build一个简单的人物类,名字,姓氏和电子邮件。 如果我想附加DataAnnotations就像在这篇博客文章中所做的,我有一个小问题,因为我的人类是dynamic生成的。 我可以直接编辑dynamic生成的代码,但任何时候我必须更新我的模型,我的validation代码将被清除。
第一本能是创build一个部分类,并尝试附加注释,但它抱怨说,我试图重新定义的财产。 我不确定是否可以在C#中使用C ++中的函数声明来进行属性声明。 如果你能这样做可能是答案。 这是我尝试的一个片段:
namespace PersonWeb.Models { public partial class Person { [RegularExpression(@"(\w|\.)+@(\w|\.)+", ErrorMessage = "Email is invalid")] public string Email { get; set; } /* ERROR: The type 'Person' already contains a definition for 'Email' */ } }
一个好友类或多或less是你的代码片段正在旅行的方向,除了手动编码的部分Person类有一个内部类,如:
[MetadataType(typeof(Person.Metadata))] public partial class Person { private sealed class MetaData { [RegularExpression(...)] public string Email { get; set; } } }
或者你可以手动部分Person类和一个单独的Meta类,如:
[MetadataType(typeof(PersonMetaData))] public partial class Person { } public class PersonMetaData { [RegularExpression(...)] public string Email; }
这些是解决方法,并有一个映射的演示类可能会更合适。
您需要使用元数据“好友”类或(我的首选项) 项目到演示文稿模型,而不是将视图直接绑定到实体 。
- 如何validationYouTubevideoID?
- 检查date是否在过去的Javascript
- 一些黑客可以从用户那里窃取cookie,并在网站上用这个名字login?
- 使用jQueryvalidationurl而无需validation插件?
- testing指针的有效性(C / C ++)
- 使用WPF和entity framework的DataAnnotationsvalidation数据?
- JSR 303 Beanvalidation+ Javascript客户端validation
- 为什么Exceptions对于inputvalidation是如此糟糕?
- ASP.NET的电子邮件地址validation