asp.net mvc telerik ajaxグリッドでNhibernateセッションを閉じた例外が発生しました。グリッドは、関連エンティティUserを持つエンティティセールにバインドされます。スローされる例外は、Userエンティティにアクセスしようとするときです。私はeetchに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'.
Userオブジェクトによって参照されるオブジェクトの1つが遅延してロードされる可能性はありますか?例えば、ユーザは、熱心に取り出されなかったLocale/Addressオブジェクトを参照します。また、どのようなタイプのセッション管理モデルを使用していますか(つまり、リクエストごとのセッションなど)? – saret
@Saret:私はcodesmithテンプレート1.7テンプレートを使用しています。これはリクエストごとにセッションが作成されます。 – odez213