Я использую ленивое свойство в объекте.1) Мне нужно загрузить объект без этого свойства, отсоединить его от сеанса.2) Затем мне нужно повторно присоединить этот объект к вновь созданному сеансу и загрузить это свойство.
Итак, я получаю данные из базы данных (1):
return session
.CreateCriteria<DataResource>()
.List<DataResource>()
.ToArray();
Чем япытаясь присоединить его и выполнить (2):
using (ISession session = GetSessionFactory().OpenSession())
{
session.Update(dataResource);
NHibernateUtil.Initialize(dataResource.Value);
}
В случае, если лень была на ссылке один-ко-многим - все работает нормально.(1) step возвращает мой реальный объект с прокси, установленным на это свойство, а после (2) step он становится реальным объектом.Но в случае, когда мне нужна лень на объекте, кажется, что NHibernate не может справиться с этим с реальным объектом.Вместо этого он возвращает прокси после шага (1).Затем на шаге (2) он генерирует исключение MappingException: не сохраняется для: Castle.Proxies.DataResourceProxy в строке .Update ().Каким-то образом он не может распознать свой собственный прокси.