最佳实践 - 数据注释 vs Entity Framework 4中的 OnChanging

6
我想知道在数据验证方面,Entity Framework 的一般建议是什么。我对 EF 还比较陌生,但似乎有两种主要的数据验证方法。
第一种方法是为模型创建一个部分类,并执行数据验证并更新一组规则违规情况。这在http://msdn.microsoft.com/en-us/library/cc716747.aspx中有详细说明。
另一种方法是使用数据注释,然后让注释执行数据验证。Scott Guthrie 在他的博客http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx中解释了这一点。
我想知道其中一种方法的优势。数据注释似乎是首选机制,特别是当您转移到 RIA 服务时,但我想确保我没有遗漏任何东西。当然,两种方法都可以同时使用。
谢谢
John
1个回答

1

我一直在使用MVC 2中的DataAnnotations,效果非常好。我还没有尝试在实体对象上使用partial进行验证,但是我看到了它的用途。基本上,如果我在实体对象上创建一个partial类,我将使用它来默认数据,例如GUID标识符、创建日期或修改日期。我想,对于需要在实体层中发生的某些复杂验证,将验证添加到partial类中可能会很有用,但即使是这种情况,这些验证也可以在自定义验证器中完成。如果您正在使用MVC网站,那么我个人建议使用dataannotations。


你对Brad Wilson在这里提出的问题有什么看法?我想我正在与数据注释挣扎,因为它们似乎太神奇了 :) http://bradwilson.typepad.com/blog/2010/01/input-validation-vs-model-validation-in-aspnet-mvc.html - John Ptacek
首先,让我感谢您指出这篇文章。它很好。这是一篇关于MVC1.0中输入验证设计更改为模型验证的信息性文章。他的观点都是正确的,并且在设计阶段应该考虑到它们。最后,数据注释并不是什么神奇的东西,它们只是你应用的属性属性,当你绑定到你的模型时强制运行验证代码。 - John Hartsock
这个链接解释了我希望做的事情...http://daniel.wertheim.se/2009/11/18/entity-framework-4-part-5-validation-using-dataannotations/将数据注释与服务层集成。我遇到了一些问题,因为我正在为Azure开发,而3.5框架不支持Validator.TryValidateObject。哎呀! - John Ptacek

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接