Исключение при десериализации объекта nhibernate - PullRequest
0 голосов
/ 30 мая 2011

У меня есть модуль, который извлекает сериализованный объект nhibernate из перетаскиваемого объекта:

DragObject dragObject = e.Data.GetData(typeof(DragObject)) as DragObject;
Object content = XamlServices.Load((new StringReader(dragObject.Xaml)));

Но я получаю исключение во второй строке, говорящее:

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

1 Ответ

0 голосов
/ 30 мая 2011

Я предполагаю, что ваш 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)));
}

Кроме того, вы также можете загрузить ленивые свойства.

...