NHibernate的SessionContext

NHibernate在不同的环境应该使用不同的上下文环境,分类如下:

1、  NHibernate.Context.ManagedWebSessionContext

为Web项目的HttpContext提供操作上下文,仅用在Web 项目中。必须手动通过Bind和Unbind静态方法绑定和解除ISession实例,它自己不能打开,关闭自己。

配置参数current_session_context_class为:managed_web


 2、   NHibernate.Context.CallSessionContext

为Remoting服务项目中的CallContext提供上下文操作环境,不建议在.net 2.0 web项目中使用。

配置参数current_session_context_class为:call


 3、   NHibernate.Context.ThreadStaticSessionContext

通过[System.ThreadStaticAttribute]特性为每个线程提供操作上下文,以避免在同一个线程中存在多个CurrentSession。

必须手动通过Bind和Unbind静态方法绑定和解除ISession实例,它自己不能打开,关闭自己。

配置参数current_session_context_class为:thread_static


 4、  NHibernate.Context.WebSessionContext

为每个System.Web.HttpContext提供一个CurrentSession,仅在Web 项目有效。与ManagedWebSessionContext类似。

配置参数current_session_context_class为:web

5、NHibernate.Context.WcfOperationSessionContext

为WCF项目提供当前操作上下文,仅在一个WCF操作的生命周期中有效。

配置参数current_session_context_class为:wcf_operation


你可能感兴趣的:(NHibernate的SessionContext)