2009-12-08 48 views
9

我使用NHibernate(2.0.1.4)與NHibernate.Linq(1.0.0.4)從數據庫中獲取類型節點的對象。NHibernate獲取對象沒有代理

當我得到這些對象,我得到了集合的最後一個對象是代理類型的(因爲我用「NHibernate.ByteCode.LinFu」」)

我用下面的LINQ查詢:

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

anchestorNodes是ID,用於節點對象列表來獲得。

當我有3組的ID,在「ancestorNodes」名單,結果(mynodes)的最後一個對象,我從查詢得到的是的type nodeProxy。

這怎麼可能? 爲什麼它總是最後一個對象? 我該如何解決這個問題?

回答

17

如果您的代理對象實現INhibernateProxy,你可以與NHibernate用下面的代碼unproxy對象:

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

希望這有助於!

相關問題