2009-06-09 57 views
0

我有一個Nhibernate類庫和一個引用它的Web應用程序。我可以得到的數據形成的產品表,這很好,但是當我刷新它,我收到低於這個issue.Please看到圖像:使用Nhibernate時的WebDev問題

http://vi-vn.com/pubs/images/NhibernateWeb.jpg (死鏈接)

是否有辦法來糾正他的問題?

+0

應該如何知道問題是什麼?您應該調試您的服務器並提供發生的異常和生成它的代碼。 – 2009-06-09 09:55:20

+0

http://vi-vn.com/pubs/images/SessionClose.jpg 是的。我使用NHibernate-2.1.0.Alpha2-bin – QuachNguyen 2009-06-09 11:08:25

回答

1

您已鏈接的錯誤消息圖像向我表明您可能試圖訪問會話後,它已被關閉。嘗試訪問延遲加載的集合/引用時,通常會發生這種情況。例如:

class MyObject 
{ 
    public virtual IList<MyOtherObject> MyObjects { get; set; } 
} 

MyObject obj = session.Load<MyObject>(1); 

// Some stuff happens, the session is explicitly closed or goes out of scope 

// Later, obj is still tied to the (now closed) session but code tries to: 
int count = obj.MyObjects.Count; // MyObjects is lazy-loaded, NHibernate tries to query 

NHibernate的看到了MyObjects收集延遲加載和尚未初始化,所以它會試圖通過其關聯的會話來查詢集合。但是,該會話已經關閉,所以它會拋出ObjectDisposedException並說「會話已關閉!」

解決方案是預加載您的集合或確保會話不會超出範圍,或者在您完成之前明確處理會話。