1
我有擁有多個前端的核心代碼庫。一個前端是WCF服務,另一個是一個控制檯應用程序,它只是啓動一些執行財務計算和其他業務邏輯的長時間運行的命令。我想弄清楚如何在控制檯應用程序中管理我的ISession。我'可以'每個「命令」只有一個會話,但是其中一些命令是長時間運行的過程,我擔心會話已經打開了很長時間並且/或者它變得太臃腫了。這種類型的場景的任何指針?控制檯應用程序中的NHibernate會話管理
在Web應用程序管理NH會議是如此容易得多...;)
所以你建議一個ISession和必要時沖洗?我正在玩弄。如果在一個過程中遇到異常,會發生什麼情況?我可以處理會議,但之後我需要創建一個新的會議,因爲我必須繼續進一步的操作。 – Bob 2009-11-16 15:10:00
只要您的控制檯應用程序。不能在多線程/進程上運行,一個ISession應該可以正常工作。如果在你的應用程序中拋出一個異常,你將不得不面對可能會丟失一些數據的可能性 - 但是你也可能試圖在錯誤處理代碼中刷新ISession。 在調用Flush()之後,不要重新創建ISession,只需調用Clear()方法。 Clear()會從ISession中移除關於對象的所有「元」信息,這會產生大量/冗長的操作,並且會降低性能。 – WiseGuyEh 2009-11-17 12:49:42