2011-05-29 11 views
0

をデシリアライズするとき、私はドラッグされたオブジェクトから直列化さNHibernateのオブジェクトを取得するモジュールがあります。例外NHibernateのオブジェクト

​​

をしかし、私は言って2行目に例外を取得:

failed to lazily initialize a collection, no session or session was closed 

答えて

0

私は仮定dragObjectはnhibernateでシリアライズされたオブジェクトです。明らかに、Xamlプロパティは遅延ロードされています(または、クラスの遅延読み込みプロパティにアクセスします)。

は、あなたはすべての怠惰なロードされたプロパティにアクセスする同じセッションでdragObjectをロードする必要があります。

using (ISession session = sessionFactory.OpenSession()) 
{ 
    DragObject dragObject = e.Data.GetData(typeof(DragObject)) as DragObject; 
    Object content = XamlServices.Load((new StringReader(dragObject.Xaml))); 
} 

代わりにすることもできます熱心な負荷怠惰な性質を。

+0

不幸にも、データアクセスレイヤーはGUIから分離されているため、このコンテキストからセッションを開くことはできません。 –

+0

次に、データアクセスレイヤーに遅延プロパティをロードする必要があります。 – ChrisWue

関連する問題