簡體   English   中英

桌面應用程序的GetCurrentSession會話作用域

[英]GetCurrentSession Session Scoping for a Desktop app

我最近發現了nhibernate會話作用域和上下文。 看來 ,將其用於桌面應用程序就像通過ThreadStaticSessionContext引導配置,將會話工廠綁定到上下文,然后根據需要調用sessioonFactory.GetCurrentSession()一樣簡單。

我正在尋找經驗豐富的nhib開發人員,他們可能對此有任何意見,提示和/或鏈接:
(1)為什么這是桌面應用程序的好方法
(2)使用模擬進行單元測試
(3)想要IStatelessSession時該怎么做
(4)當應用程序需要網絡功能時如何縮放。

1)您可能希望在會話范圍方面更具靈活性。 看看NHibernate會話的生存期應該是什么? 有關更多信息

2)假設您抽象了對sessionFactory的調用,您可以對該代碼進行單元測試,但是,我想您應該再進一步研究一下會話范圍

3)這是一個很好的實施問題

4)您將無法在Web應用程序中使用ThreadStaticSessionContext。 您很可能希望使用“每次請求會話”,在請求的開頭創建一個新會話,然后在請求的末尾進行處置。

我建議使用DI將ISession的創建抽象化。 如果您的代碼在執行代碼之前正在調用XYZ.GetCurrentSession(),那就不好了。 如果正在創建一個新會話(僅在當前上下文中使用),那很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM