34

अद्यतन कैसे करें ठीक है, इसलिए मैं ईएफ और LINQ दोनों के लिए नया हूं। मैंने यह पता लगाया है कि कैसे सम्मिलित करें और हटाएं लेकिन कुछ कारणों से अद्यतन मेरी समझ से बचने लगता है।LINQ से इकाइयों को रिकॉर्ड

EntityDB dataBase = new EntityDB(); 
Customer c = new Customer 
{ 
    Name = "Test", 
    Gender = "Male 
}; 
dataBase.Customers.AddObject(c); 
dataBase.SaveChanges(); 

ऊपर बनाता है और एक रिकार्ड ठीक कहते हैं:

यहाँ मेरी कोड का एक नमूना है।

Customer c = (from x in dataBase.Customers 
      where x.Name == "Test" 
      selext x).First(); 
dataBase.Customers.DeleteObject(c); 
dataBase.SaveChanges(); 

उपरोक्त निर्दिष्ट रिकॉर्ड को प्रभावी ढंग से हटा देता है।

अब मैं कैसे अपडेट करूं? मुझे इकाई संग्रह पर "UpdateObject()" विधि नहीं मिल रही है।

+0

आप EF4 का उपयोग कर रहे हैं, तो मैं इस समाधान http://stackoverflow.com/questions/623672/update-entity-framework-objects –

उत्तर

73

बस लौटे संस्थाओं में से एक को संशोधित:

Customer c = (from x in dataBase.Customers 
      where x.Name == "Test" 
      select x).First(); 
c.Name = "New Name"; 
dataBase.SaveChanges(); 

ध्यान दें, यदि आप केवल एक इकाई अद्यतन कर सकते हैं (कुछ है कि EntityObject, कुछ नहीं है कि आप की तरह select new CustomObject{Name = x.Name}

+0

मैंने किया था पसंद करते हैं उस। किसी कारण से यह डेटाबेस में परिवर्तनों को जारी नहीं रख रहा है। – Chev

+1

कभी नहीं। वह काम किया। मैं गलत डेटा देख रहा था। – Chev

+0

@ चेवेक्स: लेकिन ध्यान दें कि एक और संदर्भ उदाहरण का उपयोग करते समय इसे और अधिक शामिल किया जाता है। –

3

वे दोनों ट्रैक कुछ का उपयोग कर अनुमान है फैली संग्रह में अपने परिवर्तन, बस SaveChanges() विधि है कि डीबी अद्यतन करना चाहिए कहते हैं।

6

// अद्यतन के लिए

(from x in dataBase.Customers 
     where x.Name == "Test" 
     select x).ToList().ForEach(xx => xx.Name="New Name"); 
// के लिए

हटाने

dataBase.Customers.RemoveAll(x=>x.Name=="Name");