使用NHibernate处理MVC3中的异常和回滚

时间:2011-04-20 19:07:24

标签: c# asp.net-mvc asp.net-mvc-3 nhibernate transactions

我正在使用像Ayende describes这样的MVC3中的每个操作事务过滤器,并想知道其他人如何处理异常和回滚。

操作过滤器将从filterContext对象中了解异常,并将自动回滚事务。但如果我在行动中处理异常,那就不会发生。

我曾想过使用HttpContext.Current.Items来隐藏事务失败的某种标志,然后让我的动作过滤器检查它,但这是我想要避免的kludge。

有人可以就此提出建议吗?

2 个答案:

答案 0 :(得分:0)

Sharp architecture提供IDbContext来执行此操作。

答案 1 :(得分:0)

在控制器上,您可以覆盖OnResultExecuted以获取安全区域以处置您的上下文,或回滚您的事务或任何相关的工作单元。