2015-05-15 10 views
5

का उपयोग कर अद्यतन आमतौर पर मैं इस कोडएफई EntityState.Modified

Member member = ctx.Members.Find(id); 
member.Name = txtName.Text; 
ctx.Entry(member).State = EntityState.Modified; 
ctx.SaveChanges(); 

उपयोग कर रहा हूँ जब मैं इकाई की रूपरेखा का उपयोग कर मॉडल को अपडेट करना चाहते। मुझे SO पर एक उदाहरण मिला जो मॉडल को अपडेट करने के लिए EntityState.Modified का उपयोग नहीं करता है। मैं लाइन को हटाने की कोशिश करता हूं और यह अभी भी काम कर रहा है। पेशेवर और विपक्ष EntityState.Modified का उपयोग करते हैं और EntityState.Modified का उपयोग नहीं करते हैं?

नोट्स: मैं WinForms

उत्तर

9

EntityState अपडेट करना पड़ता है का उपयोग नहीं कर रहे हैं, तो अद्यतन करने के लिए संदर्भ

पीछे कोड लिखने की जरूरत नहीं है। संशोधित आपके मामले में बेकार है क्योंकि आपकी एआर इकाई है ई अद्यतन को पहले ही संदर्भ से ट्रैक किया गया है क्योंकि आप इसे संदर्भ से पुनर्प्राप्त करते हैं।

आप इस परिदृश्य में इसकी जरूरत है जहाँ आप संदर्भ से अपने इकाई को पुन: प्राप्त नहीं है जाएगा: पिछले जवाब में निर्दिष्ट है,

Member member = new Member({Id=1, Name="member"}) ; 
context.Entry(member).State = EntityState.Modified; 
context.SaveChanges(); 

इसके अलावा, आपके संदर्भ कभी कभी केवल एक सीमित की "देखें" पटरियों डेटाबेस और इसलिए आपको ऊपर की तरह मैन्युअल रूप से ट्रैकिंग में प्रवेश करने की आवश्यकता है।

Microsoft doc

2

में इकाई की रूपरेखा 6 संहिता सबसे पहले उपयोग कर रहा हूँ आप परिवर्तन ट्रैकिंग तो प्रॉक्सी वस्तुओं का उपयोग कर रहे हैं, तो गुण परिवर्तन और अद्यतन संदर्भ स्वचालित रूप से जो MVVM जहां तुम सिर्फ करने के लिए गुण बाँध में काफी उपयोगी है करने के लिए सुनो नियंत्रण और आप परिवर्तन ट्रैकिंग (उदाहरण के लिए आप संस्थाओं की बड़ी राशि के साथ काम कर रहे हैं जब) आप संदर्भ अपने आप को

4

की तरह अन्य लोगों को अपने संदर्भ का उल्लेख किया है स्वचालित रूप से वस्तु में परिवर्तन ट्रैक करता है।

मुझे उदाहरण के लिए यह अधिक उपयोगी लगता है जब मैं एक एमवीसी नियंत्रक को रिटर्न जेसन का उपयोग करता हूं जहां मूल ऑब्जेक्ट दृश्य के लिए जेसन में परिवर्तित होने पर परिवर्तन ट्रैकिंग खो देता है। उस स्थिति में मुझे परिवर्तनों को सहेजने से पहले ऑब्जेक्ट्स इकाई को विशेष रूप से सेट करना होगा।

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