2009-12-08 72 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) 

希望这有助于!

相关问题