0
我得到Nhibernate會話關閉異常與asp.net mvc telerik ajax網格。網格綁定到具有相關實體User的實體Sale。拋出的異常是當試圖訪問用戶實體時。我已經使用fetchMode來加載它,但我仍然得到相同的異常。如果我多次在網格頁面之間切換,則只會發生此異常。任何人遇到此問題?Nhibernate Session關閉異常問題與Asp.net mvc telerik ajax網格
用於數據訪問的代碼如下:
public IList<Sale> List()
{
var manager = new ManagerFactory().GetSaleManager();
var iCriteria = manager.Session.GetISession().CreateCriteria(typeof(Sale))
.SetFetchMode("AspnetUser3.Agents3", FetchMode.Eager);
return iCriteria.List<Sale>();
}
試圖訪問對象圖中的相關對象的代碼如下:
AgentId = sale.AspnetUser3.Agents3[0].Id,
拋出的異常
NHibernate.Exceptions.GenericADOException: could not load an entity: [SalesEntry.Data.Model.AspnetUser#7aaabf99-d77d-4edf-b949-9c4c0f3e85d8][SQL: SELECT aspnetuser0_.[UserId] as column1_12_0_, aspnetuser0_.[UserName] as column2_12_0_, aspnetuser0_.[LoweredUserName] as column3_12_0_, aspnetuser0_.[MobileAlias] as column4_12_0_, aspnetuser0_.[IsAnonymous] as column5_12_0_, aspnetuser0_.[LastActivityDate] as column6_12_0_, aspnetuser0_.[ApplicationId] as column7_12_0_ FROM [dbo].[aspnet_Users] aspnetuser0_ WHERE aspnetuser0_.[UserId]=?] ---> System.ObjectDisposedException: Session is closed!
Object name: 'ISession'.
是否有可能由用戶對象引用的對象之一被加載懶惰?例如,用戶引用一個沒有被提取的Locale/Address對象。您還使用了什麼類型的會話管理模型(即每個請求的會話等)? – saret 2011-01-27 14:19:37
@Saret:我正在使用一個codesmith模板1.7模板,它是根據請求創建會話的。 – odez213 2011-01-27 15:28:52