NHibernate Получить объекты без прокси

Я использую NHibernate(2.0.1.4) с NHibernate.Linq(1.0.0.4), чтобы получить объекты типа Node из базы данных.

Когда я получаю эти объекты, последний объект коллекции, который я получил, имеет тип Proxy (потому что я использовал "NHibernate.ByteCode.LinFu"")

Я использовал следующий запрос linq:

var mynodes = from node in session.Linq<Node>() where ancestorNodes.Contains(node.Id) select node).ToList()

anchestorNodes - это список идентификаторов, которые должны получить объекты узла.

Когда у меня есть 3 идентификатора в списке "ancestorNodes", последний объект результата (mynodes), который я получил из запроса, имеет тип nodeProxy.

Как это могло произойти? Почему это всегда последний объект? Как я могу решить эту проблему?

1 ответ

Решение

Если ваш объект Proxy реализует INhibernateProxy, вы можете отменить прокси-объект с помощью NHibernate с помощью следующего кода:

iAmaSession.GetSessionImplementation().PersistenceContext.Unproxy(iAmaProxy)

Надеюсь это поможет!

Другие вопросы по тегам