代码之家  ›  专栏  ›  技术社区  ›  Andre Pena

如何在ASP.NET WebForms应用程序中处理NHibernate会话?

  •  2
  • Andre Pena  · 技术社区  · 15 年前

    我看到会话处理有两种可能的情况:

    1. 为每个概念性的“工作单元”打开一个ISession。为一个请求创建了许多会话。

    我倾向于#2,但我不知道这是否是最佳实践,也不知道如何处理跨会话对象。

    谢谢。

    4 回复  |  直到 15 年前
        1
  •  1
  •   cbp    15 年前

    但是,您可以为每个“工作单元”打开和提交事务。因此,每个会话都有许多事务(通常的做法是确保在提交事务时,同时刷新会话)。

    例如,单击“保存”按钮后,打开并提交事务。

    会议将负责跟踪您的所有实体。必要时,事务将负责刷新数据库。

    有了这个设置,应该更容易调试您的问题。

        2
  •  1
  •   Curt    15 年前

    对于我现在正在处理的ASP.NET项目,我使用了这些方法的组合。

    但是,当我需要保存、更新或删除一个实体时,我会创建一个新的临时对象,并将其交给一个新的ISession,与绑定到请求的ISession分开。对于其他工作单元,我创建了其他会话。

        3
  •  0
  •   Jay    15 年前

    NHibernate Burrow 在这方面很有帮助,或者至少很有趣,因为它旨在帮助ASP.NET应用程序中的会话管理,实现跨多个请求的“长时间运行的会话”的概念。

        4
  •  0
  •   bleevo    15 年前