我看到有2分可能的情況作爲對會話處理:每次請求如何處理ASP.NET WebForms應用程序中的NHibernate會話?
- 打開一個單一的Isession。在請求開始時打開它並在請求結束時關閉它。
- 按概念「工作單元」打開一個ISession。爲請求創建了許多會話。
方法#1是我現在正在做的。我有點擔心,因爲雖然它有效,但調試有點困難。例如,我有一個對象沒有被保存(即使我命令它),而且我在調試時遇到了麻煩,因爲在完整的請求生命週期中發生了很多事情。
方法#2似乎是標準的最佳實踐(不確定關於ASP.NET),我相信調試起來更容易。我看到的問題是關於會話間通信。例如:My Page類持有對用戶的引用,這是一個持久對象。許多操作接收用戶作爲參數。由於用戶屬於不同的會話,因此我無法將其作爲參數傳遞。
我偏向於#2,但我不知道這是否是最佳做法,也不知道如何處理跨會話對象。
謝謝。
爲什麼很難調試? – Paco 2010-07-16 11:58:19