NHibernate回滚(不符合规则)(验证最佳实践)

NHibernate回滚(不符合规则)(验证最佳实践),nhibernate,validation,Nhibernate,Validation,我正在处理一个遗留系统,该系统使用企业库验证块在对象无效时添加一个已破坏的规则。然后,根据此错误向用户返回一条消息,并告知对象未更新 唯一的问题是,现在我正在使用NHibernate来持久化这些对象——当我提交会话时,NHProf会显示对象的更新。这是因为我假设对象已经被修改,ORM只是在做它的工作 我的问题是——在我提交会话之前,检查这些违反规则的最佳方法是什么?或者我不应该使用企业库并切换到对NHibernate友好的内容 更新 我遇到了NHibernate Validator事件监听器的事

我正在处理一个遗留系统,该系统使用企业库验证块在对象无效时添加一个已破坏的规则。然后,根据此错误向用户返回一条消息,并告知对象未更新

唯一的问题是,现在我正在使用NHibernate来持久化这些对象——当我提交会话时,NHProf会显示对象的更新。这是因为我假设对象已经被修改,ORM只是在做它的工作

我的问题是——在我提交会话之前,检查这些违反规则的最佳方法是什么?或者我不应该使用企业库并切换到对NHibernate友好的内容

更新


我遇到了NHibernate Validator事件监听器的事件监听器类-我的最终实现非常类似

我不熟悉企业验证块,但您不能编写一个拦截器或类似的东西来确定对象是否可以保存,根据你所掌握的关于违反规则的信息

您也可以选择不使用NHibernate的自动脏检查。
这意味着您必须对已修改的对象自己调用“保存”,以便保存该对象。

我喜欢您提到的事件侦听器选项—我将根据接口验证实体,然后检查它是否有任何违反规则的情况—最后,如果有,我将简单地回滚事务。我更喜欢这个,而不是每次都要求“保存”——拥有这个功能而不必考虑它是件好事