【问题标题】:how to set session for a console application?如何为控制台应用程序设置会话?
【发布时间】:2009-12-22 14:32:02
【问题描述】:

我有一个用于我使用 nhibernate 的 Web 应用程序的 c# 库。 Web 应用程序有我设置的 hibernate.cfg.xml 文件:

current_session_context_class= 网络

我正在使用 nhibernateHelper 类和 httpmodule 来根据每个请求打开和关闭会话。

我现在需要在控制台应用程序中使用这个库,我现在应该将 current_session_context_class 值设置为什么?

【问题讨论】:

    标签: nhibernate


    【解决方案1】:

    您可以使用“线程”选项。这会将当前会话绑定到线程。

    有关桌面应用程序中会话管理的更多信息: What is your session management strategy for NHibernate in desktop applications?

    关于 NHibernate 和桌面应用程序的 Ayendes MSDN 文章: http://msdn.microsoft.com/en-us/magazine/ee819139.aspx

    【讨论】:

      【解决方案2】:

      我已将 nHibernate 用于 Web 和控制台应用程序,但从未使用此特定配置设置。

      我做了一些谷歌搜索,发现了这个:
      Contextual Sessions

      摘录:

      开箱即用,NHibernate 2.0.0 来了 有几个实现 界面:

      • NHibernate.Context.ManagedWebSessionContext -当前会话由 HttpContext 跟踪。然而,你是 负责绑定和解除绑定 具有静态方法的 ISession 实例 在这堂课上,它永远不会打开, 刷新或关闭 ISession 本身。

      • NHibernate.Context.CallSessionContext - 当前会话由 CallContext 跟踪。您有责任 绑定和取消绑定 ISession 实例 使用类的静态方法 当前会话上下文。

      • NHibernate.Context.ThreadStaticSessionContext -当前会话存储在线程静态变量中。这个语境 只支持一个会话工厂。你 负责绑定和解除绑定 具有静态方法的 ISession 实例 CurrentSessionContext 类的。

      • NHibernate.Context.WebSessionContext - 类似于上面的 ManagedWebSessionContext,存储 HttpContext 中的当前会话。 您有责任绑定和解除绑定 具有静态的 ISession 实例 类方法 当前会话上下文。
        .....
        ...但是,有相应的 简称:"managed_web", "call", “thread_static”和“web”, 分别。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-15
        • 2012-11-02
        • 1970-01-01
        • 2018-03-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多