使用 MVC2 和 EF4 进行自定义验证
ScottGu 的博客上是一个如何将 MVC2 自定义验证与 EF4 结合使用的示例: http:// weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx
所以这里的问题是:
当VS2010中的设计器为数据库创建对象时,根据示例,您必须向该类添加 [MetadataType(typeof(Person_validation))] 注释。
但是当我更改设计器中的任何内容时,所有这些注释都会丢失。
是否可以保留对 edmx 文件的自行更改,或者是否有更好的方法将 System.ComponentModel.DataAnnotations 应用于生成的实体?
谢谢。
on ScottGu's Blog is an Example how to use MVC2 Custom Validation with EF4:
http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx
So here the Problem:
When the Designer in VS2010 creates the Objects for the DB, along to the example you have to add [MetadataType(typeof(Person_validation))] Annotation to that class.
But when i change anything in the Designer all these Annotations are lost.
Is it possible to keep self made changes to the edmx file, or is there any better way of applying System.ComponentModel.DataAnnotations to the generated Entities?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以使用一种松散地称为“伙伴类”的模式来完成此操作。基本上,您要做的就是使用元数据创建一个单独的类,并创建一个将生成的实体耦合到伙伴类的部分类。
举一个简单的示例,假设您有一个
Person
实体,并且您希望将FirstName
属性设置为必需属性。这是您在生成的文件之外要做的事情:您可以找到有关此方法的更多详细信息 此处。 ScottGu 实际上也在您链接的文章中谈到了这一点。查看标题“第 5 步:持久化到数据库”;)
You do it with a pattern loosely called "buddy classes". Basically what you do is create a separate class with your metadata, and create a partial class that couples the generated entities to your buddy class.
For a simple example, let's say you have a
Person
entity, and you want to set theFirstName
property to be required. This is what you'd do outside of your generated files:You can find more details on this approach here. And ScottGu actually talks about it too, in the article you linked to. Look under the headline "Step 5: Persisting to a database" ;)