當不使用事務時,它看起來像NHibernate的無狀態會話強制連接在每個語句(讀或寫)後關閉。是否有可能強制NHibernate的無狀態會話重新使用連接?
看着代碼,它出現了這種情況,因爲ConnectionManager的ConnectionReleaseMode
自動設置爲AfterTransaction
,而不使用事務被解釋爲在其自己的事務中執行每個語句。
有沒有方法可以改變這種行爲,並允許在會話的整個生命週期中重複使用單個連接?
我使用SqlClientDriver,萬一它很重要。
當然,我可以調用'OpenStatelessSession()'傳遞我自己的連接,但是我必須將連接壽命與會話生命期限聯繫起來...... – 2012-07-17 15:57:46
您的**實際**問題是什麼? (你試圖通過連接重用來解決的問題) – 2012-07-17 18:44:52
我的主要問題是性能 - 我在會話的生命週期中執行大約15條語句,並且使用ApplicationRoles,因此每個連接建立都需要調用存儲的sp_setapprole PROC。通過當前的行爲,在會話的整個生命週期中,連接會被打開和關閉15次,而批准sp將被執行15次。 – 2012-07-18 07:46:54