2012-02-23 9 views
22

निष्पादित नहीं कर सकता है मैं वर्तमान में ईएफ 4.0 का उपयोग कर रहा हूं। मेरा उद्देश्य एक बच्चे के संग्रह को हटाना और एक ही माता-पिता को नए जोड़ना है।इकाई फ्रेमवर्क संग्रह संशोधित किया गया था; गणना ऑपरेशन

public void AddKids(int parentId, Kids newKids) 
{ 
    using (ModelContainer context = new ModelContainer(connectionString)) 
    { 
     using (TransactionScope scope = new TransactionScope()) 
     { 
      var query = from Parent _parent in context.Parents 
         where _parent.ParentId == parentId select _parent; 

      Parent parent = query.Single(); 
      while (parent.Kids.Any()) 
      { 
       context.Kids.DeleteObject(parent.Kids.First()); 
      } 

      if (newKids != null) 
      { 
       foreach (Kid _kid in newKids) 
       { 
        parent.Kids.Add(new Kid 
        { 
         Age = _kid.Age, 
         Height = _kid.Height 
        }); 
       } 
      } 
      scope.Complete(); 
     } 
     context.SaveChanges(); //Error happens here 
    } 
} 

त्रुटि शीर्षक से है: संग्रह संशोधित किया गया था; गणना ऑपरेशन निष्पादित नहीं हो सकता है।

किसी भी मदद की सराहना की जाएगी।

+1

आप न्यूकिड्स कहां परिभाषित करते हैं? –

+0

@ जस्टिननिज़नर: धन्यवाद, मैंने अपना प्रश्न संपादित किया। – madatanic

+1

अब मैं यह भी सोच रहा हूं कि माता-पिता को परिभाषित किया गया है। –

उत्तर

42

आप इसे देख रहे हैं क्योंकि आप उस संग्रह से ऑब्जेक्ट हटाते हैं जिस पर वर्तमान में सक्रिय संचालन है। अधिक विशेष रूप से आप बच्चों के संग्रह को अपडेट कर रहे हैं और उसके बाद लूप में किसी भी() ऑपरेटर को निष्पादित कर रहे हैं। IENumerable उदाहरणों के साथ काम करते समय यह एक समर्थित ऑपरेशन नहीं है। मैं आपको सलाह दे सकता हूं कि यह आपके समय को फिर से लिखना है:

parent.Kids.ToList().ForEach(r => context.Kids.DeleteObject(r)); 

मुझे उम्मीद है कि इससे मदद मिलती है।

+1

मैंने आपकी विधि को उसी त्रुटि के साथ भी कोशिश की है। खोदने के कुछ घंटों के बाद, यह पोस्ट कोड ठीक काम करता है। मैंने प्रक्रिया में बाद में "बच्चों" संग्रह को संशोधित करने के साथ अपना मुद्दा पाया। मदद के लिए शुक्रिया। – madatanic

+1

मुझे खुशी है कि मैंने मदद की है। आपकी परियोजना के लिए शुभकामनाएं। – ScorpiAS

+0

बिल्कुल सही! इससे मेरी मदद की - बहुत बहुत धन्यवाद। –

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

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