मैं एक्स जो प्रकार का ऑब्जेक्ट objectX जो एक संपत्ति ListOfObjectYs है thats एकnhibernate में, अद्यतन बच्चे की सूची के लिए सक्षम नहीं वस्तुओं
List<objectY>
nhibernate मानचित्रण इस तरह दिखता है:
public ObjectXMap()
{
HasMany(x => x.ListOfObjectYs).AsBag().Inverse();
}
जब मैं इसे सहेजने के लिए जाना है, मैं objectX और उसके बाद है पर कुछ गुणों को बदलने :
Session.SaveOrUpdate(x);
अब मुझे इस संपत्ति को अद्यतन करने की आवश्यकता है जो एक सूची है। मुझे ऑब्जेक्ट की एक नई सूची मिलती है और मैं ऑब्जेक्ट की मौजूदा सूची को एक नई सूची से बदलना चाहता हूं। क्या मुझे ऐसा करने की ज़रूरत है?
foreach (ObjectY y in x.ListOfObjectYs)
{
Session.Delete(y);
deleted = true;
}
if (deleted)
{
_session.Flush();
}
x.ListOfObjectYs.Clear();
foreach (ObjectY y in newObjectYList)
{
x.ListOfObjectYs.Add(y);
Session.SaveOrUpdate(y);
}
_session.Flush();
मेरे प्रश्न हैं:
- मैं नए लोगों को जोड़ने से पहले सब कुछ और फ्लश नष्ट करने के लिए है।
- मैं इन वृद्धिशील के सभी में
के बीच
वास्तव में वाई ऑब्जेक्ट्स को सहेजे बिना आप इसे कैसे कर सकते हैं। तुम्हारा मुद्दा है, कि कैस्केड। AllDeleteOrphan() उस पर ख्याल रखता है ?? – leora
मुझे अब एक त्रुटि मिल रही है: कैस्केड = "ऑल-डिलीट-अनाथ" के साथ एक संग्रह अब मालिक इकाई इकाई द्वारा संदर्भित नहीं किया गया था: ऑब्जेक्ट – leora
यदि वाई ऑब्जेक्ट्स नए हैं तो आपको उन्हें लगातार बनाए रखने के लिए पहले उन्हें सहेजना होगा। त्रुटि संदेश इंगित कर सकता है कि आप संग्रह संदर्भ को फिर से असाइन कर रहे हैं, http://www.sleberknight.com/blog/sleberkn/entry/20070329 और http://stackoverflow.com/questions/2127016/nhibernate- मानचित्रण देखें -एक-संग्रह-साथ-cascadeall हटाना-अनाथ-था-न अब-r। –