Nhibernate Castle ActiveRecord SessionScopeWebModule异常处理

Nhibernate Castle ActiveRecord SessionScopeWebModule异常处理,nhibernate,orm,exception-handling,castle-activerecord,Nhibernate,Orm,Exception Handling,Castle Activerecord,我有一个启用SessionScopeWebModule的Web应用程序,我想知道如何启用 以最好地处理业务异常(而不是Hibernate/DB异常) 我相信AR 2.0 SessionScopeWebModule隐式实现了 事务-如果请求期间发生异常,则进行更改 会话期间,将丢弃/回滚 对于我的Web应用程序,业务层将与DB聊天,并发出 比如说,一些原油 创建实体A 创建实体B 假设实体A已创建。然而,在创建实体B时 未遵守业务规则,业务层抛出 商业例外 从UI的角度来看,最好“处理”业务异

我有一个启用SessionScopeWebModule的Web应用程序,我想知道如何启用 以最好地处理业务异常(而不是Hibernate/DB异常)

我相信AR 2.0 SessionScopeWebModule隐式实现了 事务-如果请求期间发生异常,则进行更改 会话期间,将丢弃/回滚

对于我的Web应用程序,业务层将与DB聊天,并发出 比如说,一些原油

  • 创建实体A
  • 创建实体B
假设实体A已创建。然而,在创建实体B时 未遵守业务规则,业务层抛出 商业例外

从UI的角度来看,最好“处理”业务异常 并向用户显示友好的消息。这就是 问题在于。如果已经处理了异常, SessionScopeWebModule一直认为现在一切都很好 结束请求并将实体A提交到数据库中,而无需 实体B

在这种情况下,处理异常的最佳实践是什么?我是 考虑一个会话变量,该变量将为每个新会话重置 要求如果发生异常,变量将被标记为脏。 当请求结束时,SessionScopeWebModule将首先检查 会话以查看是否发生了任何异常。如果是这样,它将调用 失败会话

这是路吗?FailSession会做丢弃的工作吗 对会话的更改

谢谢

Boyan

在网站上,我有一个关于这个话题的网络专家sean(这是第13部分),但是直接与NHibernate(没有ActiveRecord)。我解释了会话保存/刷新的方式和原因,以及如何阻止它这样做。也许视频中的信息可以帮助你

问候 Juy Juka

在网站上,我有一个关于这个主题的网络专家sean(这是第13部分),但直接与NHibernate合作(没有ActiveRecord)。我解释了会话保存/刷新的方式和原因,以及如何阻止它这样做。也许视频中的信息可以帮助你

问候 朱伊朱卡