我准备开始一个新项目,并且一直在研究实体框架。我的问题是验证实体的最佳策略是什么?我工作过的其他项目在大多数验证中都使用了属性,但显然这在实体框架中是不可能的。是通过处理属性设置器中的部分方法来完成此操作的唯一方法?所有的建议非常感谢。实体框架验证
Q
实体框架验证
16
A
回答
11
3
如果使用ASP.NET MVC,那么你可以使用验证应用程序块或System.ComponentModel.DataAnnotations。文章Using Data Annotations和Using Application Block展示了如何使用Linq来完成它们,但实体框架的用法应该是类似的。
6
在.NET 4中,Entity-Framework中将会有现成的验证支持。
退房:http://blogs.msdn.com/adonet/archive/2010/01/13/introducing-the-portable-extensible-metadata.aspx
所以不干活,就很难对实施过于复杂的验证逻辑...
2
This本文介绍如何验证应用程序块与实体框架集成。这可能有一些帮助。
0
如果您使用的是WPF或Windows窗体,那么您可能会实现IDataErrorInfo接口。
的WPF Application Framework (WAF)项目BookLibrary示例应用程序演示如何通过实体框架创建的实体可以验证。
1
我们overrident对象上下文和拦截的SaveChanges()方法
public abstract class ValidationObjectContext : ObjectContext{
...
public override int SaveChanges(SaveOptions options){
ValidateEntities();
return base.SaveChanges(options);
}
}
这样的验证是留到最后一分钟的连接之前,但你(预期)后获得幸福图形并准备提交,(与其他选项相比,可以对任何更改进行验证,因为像我们这样的复杂规则仅在设置了多个属性后才有效)。我们有两个验证级别,基本属性验证,诸如字符串长度,可空性等。而业务逻辑验证可能需要跨多个对象检查规则,可能会触击数据库进行确认。
0
考虑在您的实体中实现IValidatableObject。
相关问题
- 1. 实体框架验证无例外
- 2. 实体框架 - 验证文本格式
- 3. MVC验证基础(与实体框架)
- 4. MVC上的实体框架验证
- 5. 验证实体框架模型类
- 6. 单元测试实体框架验证
- 7. 如何与实体框架验证
- 8. 使用实体框架MVVM验证
- 9. 实体框架中的多组验证
- 10. 实体框架+验证注释
- 11. 实体框架中的数据验证
- 12. 实体框架验证混乱 - 的“128”
- 13. 实体框架5安装验证
- 14. 使用WinForms实体框架UI验证
- 15. 实体框架中的整数验证
- 16. 本地化实体框架的验证,以及验证定制
- 17. 对实体框架中所需相关实体的验证
- 18. 用于验证实体框架实体的数据注释
- 19. 实体框架验证错误实体上不被修改
- 20. MVC 3 - 实体框架 - 脚手架 - 验证问题
- 21. 首先在实体框架代码中实现数据验证
- 22. 验证框架
- 23. 窗体身份验证与mvc框架
- 24. 实体框架复杂类型自定义验证,验证停止递归
- 25. 实体框架+ Unity框架
- 26. 修改实体框架中的实体属性导致验证错误
- 27. 验证实体是否在实体框架中被修改代码优先
- 28. 实体框架 - 在Azure上读取的实体的验证错误
- 29. 添加数据验证与IValidatableObject实体框架实体在WPF和C#
- 30. 验证在ASP.NET的失败一个或多个实体的实体框架
#2和#3有什么不同?它产生的部分方法是OnChanged事件...除非我失去了一些东西。 – 2009-11-03 22:53:00
你可能是对的。自从我甚至看过EF以来,已经有很长一段时间了。 – smaclell 2009-11-09 00:59:34
我将#2和#3分别读作实体和属性级验证。当然,这两种策略有不同的用途:实体级验证测试所有属性在一起的有效性(例如,相互排斥的属性未被设置),而属性级验证仅考虑一个属性的内容时间(例如,电子邮件地址是正确的形式)。 – ladenedge 2010-02-09 19:52:41