2009-12-08 2 views
9

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

Когда я получаю эти объекты, последний объект коллекции я получил это от типа прокси (потому что я использовал «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.

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

ответ

17

Если объект Proxy реализует INhibernateProxy, вы можете unproxy объекта с NHibernate со следующим кодом:

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

Надеется, что это помогает!

Смежные вопросы