2009-12-08 16 views
9

के बिना ऑब्जेक्ट प्राप्त करें मैं डेटाबेस से नोड प्रकार के ऑब्जेक्ट प्राप्त करने के लिए NHibernate.Linq (1.0.0.4) के साथ NHibernate (2.0.1.4) का उपयोग कर रहा हूं।NHibernate प्रॉक्सी

जब मैं इन वस्तुओं मिलता है, संग्रह मुझे मिल गया के अंतिम ऑब्जेक्ट प्रकार प्रॉक्सी की है (क्योंकि मैं "NHibernate.ByteCode.LinFu" "प्रयोग किया जाता)

मैं निम्नलिखित LINQ क्वेरी का प्रयोग किया:

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

anchestorNodes पाने के लिए ईद के नोड वस्तुओं के लिए की एक सूची है।

जब मैं "ancestorNodes" सूची में 3 आईडी के लिए है, परिणाम (mynodes) के अंतिम वस्तु मैं क्वेरी से मिल गया की है टाइप करें nodeProxy।

यह कैसे हो सकता है? यह हमेशा आखिरी वस्तु क्यों है? मैं इस समस्या को कैसे हल कर सकता हूं?

उत्तर

17

अपने प्रॉक्सी वस्तु को लागू करता है तो INhibernateProxy, आप वस्तु NHibernate के साथ निम्न कोड के साथ unproxy कर सकते हैं:

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

आशा इस मदद करता है!