使用 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 应用于生成的实体?
谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 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" ;)