2009-04-27 15 views
6

मैं सिर्फ NHibernate के साथ मेरे लिए एक प्रमुख मुद्दा में भाग गया। मेरे पास 2 ऑब्जेक्ट्स हैं, प्रत्येक चीजों के संग्रह के साथ। मुझे ऑब्जेक्ट ए से संग्रह से ऑब्जेक्ट बी के संग्रह में एक चीज़ को स्थानांतरित करने की आवश्यकता है। मुझे हटाए गए ऑब्जेक्ट के बारे में त्रुटि मिलती है, क्योंकि मेरा मानना ​​है कि एनएचबीर्नेट ऑब्जेक्ट ए के संग्रह से चीज़ को हटाने की कोशिश करता है जब उसे इसे रखने की आवश्यकता होती है ऑब्जेक्ट बी के लिए डीबी स्टैंडपॉइंट से, यह केवल "मूल" संपत्ति को नई ऑब्जेक्ट (ऑब्जेक्ट बी) में अपडेट करने का मामला है। लेकिन संग्रह के साथ, मैं वास्तव में करने के लिए क्या करना है यकीन नहीं है ...NHibernate संग्रह और गतिशील वस्तुओं

वहाँ NHibernate में एक दूसरे में एक संग्रह से वस्तुओं को स्थानांतरित करने के लिए एक अच्छी तरह से ज्ञात प्रक्रिया है?

किसी भी मदद के लिए अग्रिम धन्यवाद।

सम्मान,

एरिक।

+0

आपने संग्रहों को कैसे मानचित्रित किया? –

उत्तर

3

मुझे लगता है कि आप वस्तुओं ए और के प्रतिनिधित्व वाले वर्ग के लिए मानचित्रण में कास्केड उपयोग कर रहे हैं यह सोचते कर रहा हूँ का उपयोग कर मानचित्रण की कोशिश की है बी, यानी, ए और बी कुछ कक्षा एक्स के दोनों उदाहरण हैं, और एक्स के मानचित्रण में ऑब्जेक्ट को स्थानांतरित करने वाले संग्रह पर एक कैस्केड विशेषता होती है।

यह देखते हुए कि इस धारणा है, यह मदद मिल सकती है।

आप दूसरे के लिए एक संग्रह से वस्तु को हस्तांतरण करने में सक्षम होना चाहते हैं, तो आप पर विचार करना है कि क्या बात है कि ले जाया जा रहा एक अस्तित्व दो संग्रह से स्वतंत्र है कि होना चाहिए की जरूरत है।

हस्तांतरण वस्तु अपने आप ही को बचाया नहीं कर दिया जाता है, तो आपको हस्तांतरण करते हैं, क्योंकि स्थानांतरित वस्तु पहले से ही सत्र के लिए जाना जाता है समस्याओं में चलेंगे।

दो तरीके मैं के बारे में सोच सकते हैं कि बाहर हैं। दोनों में से बेहतर संभव है कि स्थानांतरण ऑब्जेक्ट को एक स्वतंत्र वस्तु के रूप में पेश किया जाए जो स्वयं को डीबी में सहेजा जाता है (यानी, संग्रह के साथ वस्तुओं के मैपिंग में कैस्केडिंग पर निर्भर नहीं है)। संकल्पनात्मक रूप से, यह समझ में आता है क्योंकि यदि आप इसे एक संग्रह से दूसरे में स्थानांतरित कर सकते हैं जिसका अर्थ है कि किसी भी तरह से यह संग्रह वाले दो ऑब्जेक्ट्स से स्वतंत्र है। इसका मतलब यह है कि आप अनाथों के साथ खत्म हो सकते हैं।

यदि आप मैपिंग में कैस्केड का उपयोग करने के साथ रहना चाहते हैं, तो आपको ऑब्जेक्ट ए में ऑब्जेक्ट ए से ऑब्जेक्ट ए से निकालने की आवश्यकता होगी। मुझे संदेह है कि आप ऐसा नहीं करना चाहते हैं।

+0

रोब, आपके उत्तर के लिए धन्यवाद। हमने कुछ दिनों बाद एनएचबीर्नेट को छोड़ दिया और कुछ कारणों से, मुझे अपने धागे के उत्तरों की सूचनाओं को याद रखना याद नहीं है। आपकी मदद के लिए वैसे भी धन्यवाद। –

0

आप

झरना = "सभी को नष्ट-अनाथ"

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