asp.net mvc telerik ajax 표로 Nhibernate Session 예외가 발생했습니다. 그리드는 관련 엔티티 User가있는 엔티티 Sale에 바인딩됩니다. throw되는 예외는 User 엔터티에 액세스하려고 시도 할 때 발생합니다. fetchMode를 사용하여 열심히로드했지만 동일한 예외가 발생합니다. 이 예외는 여러 번 그리드 페이지간에 전환 할 경우에만 발생합니다. 누구든지이 문제가 발생 했습니까?Nhibernate 세션이 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
@Saret : 코드 스틱 템플릿 1.7 템플릿을 사용하고 있는데 요청 당 세션이 생성됩니다. – odez213