【问题标题】:Handling exceptions and rollbacks in MVC3 with NHibernate使用 NHibernate 在 MVC3 中处理异常和回滚
【发布时间】:2011-04-20 19:07:23
【问题描述】:

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

动作过滤器将从 filterContext 对象中获知异常,并自动回滚事务。但是,如果我在操作中处理异常,则不会发生这种情况。

我曾想过使用 HttpContext.Current.Items 来隐藏某种事务失败的标志,然后让我的操作过滤器对其进行检查,但这是我希望避免的混乱。

谁能给我这方面的建议?

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回答。如果我真的希望获得基础会话,那不是问题。我只是想知道是否有人有一个解决方案,可以让我在不牺牲流量控制的情况下保持过滤器事务管理的无缝特性。
    【解决方案2】:

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

    【讨论】:

    • 谢谢,但事务创建、回滚和提交发生在每操作事务过滤器上。我只是想要一种方法将操作标记为失败,而不会引发异常或允许未处理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多