2009-12-08 5 views
9

Sto utilizzando NHibernate (2.0.1.4) con NHibernate.Linq (1.0.0.4) per ottenere oggetti del tipo Node dal database.NHibernate Ottieni oggetti senza proxy

Quando torno a questi oggetti, l'ultimo oggetto della collezione ho ottenuto è di tipo Proxy (perché ho usato "NHibernate.ByteCode.LinFu"")

ho usato la seguente query LINQ:

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

anchestorNodes è un elenco di ID per gli oggetti nodo da ottenere.

Quando ho 3 id nella lista "ancestorNodes", l'ultimo oggetto del risultato (mynodes) ho ricevuto dalla query è del digitare nodeProxy.

Come potrebbe essere? Perché è sempre l'ultimo oggetto? Come posso risolvere questo problema?

risposta

17

Se l'oggetto proxy implementa INhibernateProxy, è possibile unproxy l'oggetto con NHibernate con il seguente codice:

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

Spero che questo aiuti!