我們遇到了一個工作問題。當我們嘗試從MVC3視圖中訪問NHibernate實體上的惰性加載屬性時,將拋出「No Session」LazyInitializationException。這只是在上週纔開始出現,但我們無法縮小這個問題的範圍。雖然看起來並不是簡單的解決方案。MVC3視圖中的惰性加載NHibernate實體
注意:
- 堆棧跟蹤的例子:http://textsnip.com/613608
- 我們不要處理掉(或包裹會話中使用)在我們的項目中的任何地方。我們讓ObjectFactory來處理它。
- 這個只有在我們的TeamCity測試環境中運行迴歸測試時發生(SpecFlow與WatiN)。我們沒有人能夠在我們的開發機器上重現這個問題。
- 這也不會一致發生。雖然失敗的測試通常是相同的測試,但它們並不會一直失敗。訪問會碰到某些相同視圖的頁面的其他測試不會失敗。
- 在確實失敗的測試中,它們看起來比懶惰的加載集合初始化更重於非集合初始化,但都發生了。
- 儘管我知道只要有可能,只要有可能加載實體,由於許多表模型的相互依賴關係,它會更好,但目前並不可行。
我們在這裏錯過了什麼?
你可以發佈實體和nhibernate標準/查詢等? – Mariusz 2012-04-19 16:42:56
你在測試中如何管理ISession? – dotjoe 2012-07-31 19:22:34