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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章