how to remove inner collection from a collection using LINQ or Entity framework? -
मेरे पास एक IEnumberable & lt; myObject & gt; myCollection
। myObject
के रूप में संरचना है:
myObject
इसमें 2 संग्रह हैं इसमें 2 गुण हैं:
सार्वजनिक वर्चुअल आइकलेंक्शन & lt; innerObject & gt; भीतरी वस्तुएं {प्राप्त करें; सेट; } सार्वजनिक आभासी आइकलिंग & lt; innerObject1 & gt; इनरऑब्जेक्ट 1 {प्राप्त करें; सेट; }
मैं एंटिटी ढांचा का उपयोग करते समय ' LazyLoadingEnabled = false
' का उपयोग नहीं किया है, क्योंकि मैं चाहता हूं कि इनर संग्रह को डेटाबेस से प्राप्त होने पर लोड हो।
इस मामले में मेरे भीतर का संग्रह है, लेकिन मैं संग्रह को कॉलिंग पद्धति में लौटने से पहले आंतरिक संग्रह को खाली करना चाहता हूं।
कृपया मुझे एक अच्छा दृष्टिकोण सुझाएं वर्तमान में मैं सिर्फ LINQ का उपयोग करके आंतरिक संग्रह को निकालने की सोच रहा हूं।
बस स्पष्ट करने के लिए, LazyLoadingEnabled
के साथ आंतरिक संग्रह लोड हो जाएगा जब पहली बार पहुँचा - नहीं जब युक्त वस्तु डेटाबेस से प्राप्त होती है यदि आप स्पष्ट रूप से एक ही समय में आंतरिक संग्रह प्राप्त करना चाहते हैं, तो जिस वस्तु को आप स्पष्ट
या उत्सुक
आंतरिक संग्रह के लोडिंग का उपयोग करना चाहते हैं।
myObject इन्हें भीतरी संग्रह से बदलता है और इकाई फ़्रेमवर्क को बताता है: प्रत्येक बच्चे की वस्तुओं को ट्रैक करना बंद करें बाल वस्तुओं को भी संग्रह से निकाल दिया जाता है।
आपके मामले में, जैसा कि आप आलसी लोडिंग का उपयोग कर रहे हैं, आंतरिक बच्चे संग्रह के किसी भी उपयोग से बच्चे की वस्तुओं के बाद भी संग्रह का आलसी लोड ट्रिगर किया जाएगा
नोट , भावी
सेव चेंज
के रिश्ते को हटाने के बिना, LINQ का उपयोग करके संग्रह से बाल निकायों को निकालना संभव नहीं है डेटा स्तर।
उदाहरण:
myObject.innerObjects = null;
या
MyObject.innerObjects = नई सूची & lt; InnerEntity & gt; ()
;
दोनों माता-पिता से डेटा स्तर पर निकाले जाने पर, अगर सेव्ज चेंज ()
।
अगर मुझे सही ढंग से सवाल समझ में आ गया है और यह वह है जिसे आप प्राप्त करना चाहते हैं, तो मैं आलसी लोडिंग से दूर जाने की सिफारिश भी करूँगा। अर्थात। यदि आप अपने ऑब्जेक्ट ग्राफ को स्पष्ट रूप से आकार देने की कोशिश कर रहे हैं तो आप हमेशा आलसी लोडिंग प्रॉक्सी के खिलाफ प्रतिस्पर्धा करेंगे।
Comments
Post a Comment