Nhibernate 如何为控制台应用程序设置会话?

Nhibernate 如何为控制台应用程序设置会话?,nhibernate,Nhibernate,我在使用nhibernate的web应用程序中有一个c#库。 web应用程序具有hibernate.cfg.xml文件,我在其中设置: 当前会话上下文类=web 我使用一个nhibernateHelper类和一个httpmodule根据每个请求打开和关闭会话 现在我需要在控制台应用程序中使用此库,我应该将当前会话上下文类值设置为什么?您可以使用“线程”选项。将当前会话绑定到线程的 有关桌面应用程序中会话管理的详细信息: Ayendes MSDN关于NHibernate和桌面应用程序的文章: 我

我在使用nhibernate的web应用程序中有一个c#库。 web应用程序具有hibernate.cfg.xml文件,我在其中设置:

当前会话上下文类=web

我使用一个nhibernateHelper类和一个httpmodule根据每个请求打开和关闭会话

现在我需要在控制台应用程序中使用此库,我应该将当前会话上下文类值设置为什么?

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

有关桌面应用程序中会话管理的详细信息:

Ayendes MSDN关于NHibernate和桌面应用程序的文章:

我在web和控制台应用程序中都使用过nHibernate,但从未使用过此特定的配置设置

我在谷歌上搜索了一下,发现了这个:

摘录:

NHibernate2.0.0开箱即用 有几个这样的实现 接口:

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

  • NHibernate.Context.CallSessionContext -当前会话由CallContext跟踪。你有责任 绑定和解除绑定ISession实例 使用类的静态方法 CurrentSessionContext

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

  • NHibernate.Context.WebSessionContext-类似于上面的ManagedWebSessionContext,存储 HttpContext中的当前会话。 您有责任绑定和解除绑定 一个静态的ISession实例 课堂教学方法 CurrentSessionContext.
    ..…
    …但是,有相应的 短名称:“托管网络”、“呼叫”, “线程静态”和“web”, 分别