2011-12-23 11 views
8

जब मैं रिकॉर्ड हटाने की कोशिश करता हूं तो मुझे Cannot remove an entity that has not been attached. त्रुटि मिल रही है। मैं आसपास googled है और वहाँ हालांकि स्थानों के बहुत सारे समाधान खोजने के लिए इस समस्या को दूर करने के लिए, सुझाव दिया गया समाधान मुझे आगे नहीं मिलता है:linq-to-sql "एक ऐसी इकाई को नहीं हटाया जा सकता है जो संलग्न नहीं हुआ है"

using (MyDataContext TheDC = new MyDataContext()) 
{ 
    TheDC.MyTable.Attach(ARecord); //added this line but doesn't fix it. 
    TheDC.MyTable.DeleteOnSubmit(ARecord); 
    TheDC.SubmitChanges(); 

मेरे बड़ा सवाल यह है: यह समस्या केवल प्रश्नों को हटा को प्रभावित करता है या यह अन्य प्रकार के प्रश्नों को भी प्रभावित करता है और मैंने अभी तक इस समस्या में नहीं उछाल दिया है। मैंने एक अद्यतन क्वेरी लिखी है और ऐसा लगता है कि इस त्रुटि में भाग दिए बिना काम करता है।

धन्यवाद।

उत्तर

11

कृपया इस अतः पोस्ट का संदर्भ लें: How to delete in linq to sql?

... संलग्न, अगर आप पहले से ही प्राथमिक कुंजी है के बारे में। यदि आपके पास प्राथमिक कुंजी नहीं है तो मैंने हमेशा एक डिलीट किया है, फिर हटाएं, लेकिन, जब भी मैं एक fetch करता हूं, तो मैं अपडेट और डिलीट के लिए प्राथमिक कुंजी स्टोर करता हूं।

यह प्राथमिक कुंजी से हटा देगा, लेकिन यदि आपके पास ऐसा है तो बस नीचे दिए गए अनुसार संलग्न करें और हटाएं कॉल करें। मैं DLINQ द्वारा आवश्यक ऑब्जेक्ट को पास नहीं करता क्योंकि मैं इसे बदलना चाहता हूं, इसलिए मैं इसे अलग-अलग उपयोगकर्ता ऑब्जेक्ट में पास कर सकता हूं और पीके को बिजनेस क्लास से खींच सकता हूं और इसे डीएओ क्लास में डाल सकता हूं।

var db = new MeatRequestDataContext();    
if (input.UserID > 0) 
{ 
    entity = new User() 
    { 
     UserID = input.UserID 
    }; 
    db.Users.Attach(entity); 
    db.Users.DeleteOnSubmit(entity); 
} 
+3

+1 – bytebender

4

मेरे लिए, ठीक सिर्फ डेटाबेस ऑब्जेक्ट के लिए पहले खोज रहा था।

var db = new MeatRequestDataContext(); 
if (input.UserID > 0) 
{ 
    var existing = db.Users 
     .Single(user => user.UserID == input.UserID); 

    db.Users.DeleteOnSubmit(existing); 
} 

मेरे मन में, मैं केवल क्या पहले से ही वहाँ था हटा सकता है, तो मैं डेटाबेस है कि मैं पहले उसे हटा नहीं करना चाहता था में आइटम प्राप्त जाना की जरूरत है। यह संग्रह और DeleteAllOnSubmit() के साथ भी काम करता है। MeatRequestDataContext (0) के लिए

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

  • कोई संबंधित समस्या नहीं^_^