2016-03-22 68 views

回答

2

不,現在的NHibernate會話是什麼?

在Web應用程序中,每個http請求都必須使用其特定的NHibernate會話。

在桌面應用程序中,每個屏幕可能會爲其每個操作使用一個會話。

NHibernate會話不應該被用作單例。

您應該使用會話工廠在您的遺留代碼中打開一個新的NHibernate會話,然後使用其CreateSQLQuery方法。你的會話工廠通常應該有一個單身生命週期。

如果你將你的NHibernate會話綁定到一些對你的應用程序有意義的上下文(比如HttpContext,CallContext),你可以改爲從那裏獲取它。注意可能導致上下文丟失的情況(異步/等待配置爲不恢復上下文,asp.net線程敏捷性(不會導致HttpContext損失,但CallContext損失),...)。

相關問題