Я получаю закрытое исключение Nhibernate Session с asp.net mvc telerik ajax grid. Сетка привязана к объекту Sales, у которого есть связанный пользователь. Исключение составляет попытка получить доступ к объекту User. Я использовал fetchMode для его загрузки, но все равно получаю то же исключение. Это исключение возникает только в том случае, если я переключаюсь между страницами сетки несколько раз. Кто-нибудь столкнулся с этой проблемой?Nhibernate Сессия закрытого исключения с Asp.net mvc telerik ajax grid
Код для этого доступа к данным является следующим:
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'.
Возможно ли, что один из объектов, на которые ссылается объект User, загружается лениво? Например, Пользователь ссылается на объект Locale/Address, который не был загружен с нетерпением. Кроме того, какой тип модели управления сеансом вы используете (например, сеанс на запрос и т. Д.)? – saret
@Saret: Я использую шаблон кода codemith 1.7, который для каждого запроса создается сеанс. – odez213