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