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)
Надеюсь это поможет!