मैंने एंटिटी फ्रेमवर्क के साथ एक रोचक समस्या में भाग लिया है और मुझे उस कोड के आधार पर उपयोग करने के लिए उपयोग किया गया था, मुझे संदेह है कि मेरा समाधान आदर्श से कम है। मेरे पास टेबल ए और टेबल बी के बीच 1 से कई रिश्तों हैं जहां टेबलबी में इकाइयों के पास टेबलए का संदर्भ है। मैं एक परिदृश्य में जहाँ मैं एक साथ TableA में एक पंक्ति के सभी बच्चों को हटाना चाहते हैं और मुझे लगा कि यह बस उस समूह का साफ़ करके प्राप्त किया जा सकता है:इकाई फ्रेमवर्क - एक बाल संग्रह साफ़ करें
Entity.Children.Clear()
दुर्भाग्य से, जब मैं परिवर्तन इस एक विदेशी के रूप में उत्पादित बचाने का प्रयास किया मुख्य उल्लंघन।
एक रिश्ता जोड़ा जा रहा है या एक AssociationSet 'FK_EntityB_EntityA' से हटा दिया। कार्डिनिटी बाधाओं के साथ, संबंधित 'EntityB' को भी जोड़ा या हटाया जाना चाहिए।
जिस समाधान के साथ मैं आया था वह मैन्युअल रूप से इकाई संदर्भ के DeleteObject() के माध्यम से ऑब्जेक्ट को हटाना था, लेकिन मुझे पता है कि मैं इस तर्क का उपयोग कर रहा हूं, गलत है।
while (collection.Any())
Entities.DeleteObject(collection.First());
एक के लिए, तथ्य यह है कि मैं एक कहाँ() पाश का इस्तेमाल किया था अब तक आदर्श से कम लगता है, लेकिन मुझे लगता है कि विशुद्ध रूप से मेरी ओर से एक अर्थ आकलन है। किसी भी मामले में, क्या मैं ऐसा कर रहा हूं, इसमें कुछ गड़बड़ है, या क्या किसी इकाई की बाल इकाई संग्रह को साफ़ करने का शायद एक बेहतर तरीका है कि एंटीटी फ्रेमवर्क सभी हटाए गए ऑब्जेक्ट्स पर डेटा स्टोर को ठीक से हटा देता है?
यह सही दिखता है। आंशिक वर्ग से संदर्भ में कोई प्रत्यक्ष (या अप्रत्यक्ष) मार्ग है? –
हाँ एक अप्रत्यक्ष मार्ग है: http: //blogs.msdn।com/alexj/archive/2009/06/08/tip-24-how-to-get-the-objectcontext-from-an-entity.aspx –
ऐसा लगता है कि मैं बस थोड़ी देर के निर्माण() लूप को बेहतर बनाने में बेहतर हूं मेरे भंडार में हटाना ताकि मैं इसे आसानी से पुन: उपयोग कर सकूं। मुझे संदर्भ को हल करने की चेतावनी के बारे में चिंता करने की ज़रूरत नहीं है और यह उपयुक्त रूप से लचीला है। फिर भी, मुझे कुछ समय के लिए सी # में थोड़ी देर() लूप लिखना नहीं था, यह लगभग गलत लगता है। –