यदि आप वास्तव में हटाए गए का उपयोग करना चाहते हैं, तो आपको अपनी विदेशी कुंजियों को अशक्त बनाना होगा, लेकिन तब आप अनाथ रिकॉर्ड के साथ समाप्त हो जाएंगे (जो कि मुख्य कारणों में से एक है जो आपको पहले नहीं करना चाहिए)। तो बस उपयोग करेंRemove()
ObjectContext.DeleteObject (एंटिटी) इकाई को संदर्भ में हटाए गए के रूप में चिह्नित करता है। (यह EntityState इसके बाद हटा दिया गया है।) यदि आप SaveChanges को बाद में कॉल करते हैं, तो EF डेटाबेस में SQL DELETE स्टेटमेंट भेजता है। यदि डेटाबेस में कोई संदर्भात्मक बाधाएं नहीं हैं, तो उल्लंघन किया जाएगा इकाई को हटा दिया जाएगा, अन्यथा एक अपवाद फेंक दिया गया है।
EntityCollection.Remove (childEntity) माता-पिता और बच्चे के बीच के रिश्ते को हटाए गए के रूप में चिह्नित करता है। यदि चाइल्डऑनिटी स्वयं डेटाबेस से हटा दी जाती है और जब आप कॉलचेंज को कॉल करते हैं तो वास्तव में क्या होता है, यह दोनों के बीच संबंध के प्रकार पर निर्भर करता है:
ध्यान देने योग्य बात यह है कि सेटिंग .State = EntityState.Deleted
स्वचालित रूप से पहचाने गए परिवर्तन को ट्रिगर नहीं करती है। ( संग्रह )