2009-03-24 19 views
9

मेरे पास यहां मेरे पास कोड तक पहुंच नहीं है इसलिए मैं सोच रहा था कि कोई मुझे सत्र के साथ मदद कर सकता है। Evict()।NHibernate सत्र .Evict()

कहें कि मेरे पास पते के बाल संग्रह के साथ एक व्यक्ति वस्तु है। मैं एक ऑब्जेक्ट से व्यक्ति ऑब्जेक्ट को पॉप्युलेट करता हूं और एड्रेस संग्रह को आलसी लोड करता हूं। मैं सत्र से व्यक्ति ऑब्जेक्ट को अलग करने के लिए सत्र कहता हूं। (व्यक्त करें ऑब्जेक्ट)। मेरा सवाल यह है कि, यदि मैं पता संग्रह तक पहुंचने का प्रयास करता हूं तो क्या यह सिर्फ शून्य हो जाएगा, या क्या मुझे अपवाद मिलेगा क्योंकि एनएचबीर्नेट प्रॉक्सी को संबंधित सत्र नहीं मिल रहा है?

उत्तर

18

यदि आप इकाई को बेदखल करने से पहले आलसी लोड होने का कारण बनते हैं, तो संग्रह निष्कासन के बाद भी पहुंच योग्य होगा। हालांकि अगर आप इकाई को बेदखल करते हैं और फिर बच्चे के संग्रह को आलसी लोड करने का प्रयास करते हैं तो आपको अपवाद मिलेगा।

+0

+1 के लिए धन्यवाद यूनिट परीक्षण करते समय आज बिल्कुल वही परिदृश्य उत्पन्न हुआ –

0

मेरे पास मेरे सामने कोड भी नहीं है, लेकिन स्मृति से, आपको शायद अपवाद मिलेगा।

यदि आपके पास आलसी लोडिंग और काम कर रहा है, तो NHibernate पता संग्रह लोड करने का प्रयास करेगा। इसे कभी भी गलत मान/संग्रह वापस नहीं करना चाहिए, यह केवल तभी शिकायत करेगा जब यह पूछा जा सके कि यह क्या लोड नहीं किया जा सकता है।

+0

यह समझ में आता है ... जब मुझे मौका मिलता है तो मैं इसका परीक्षण करूंगा। उत्तर – lomaxx

6

आपको एक NHibernate.LazyInitializationException प्राप्त होगा।

संबंधित मुद्दे