के बीच अंतर मेरा लक्ष्य मौजूदा इकाई की प्रतिलिपि बनाना है, इसे थोड़ा संशोधित करना है, और संशोधित संस्करण डालना है।इकाई फ्रेमवर्क: डिटेच और AsNoTracking
var thing = context.Things.Where(x => x.SomeID == someid).AsNoTracking().Single();
thing.AnotherID = 1234;
context.Things.AddObject(thing);
context.SaveChanges();
var thing = context.Things.Where(x => x.SomeID == someid).Single();
context.Detach(thing);
thing.AnotherID = 1234;
context.Things.AddObject(thing);
context.SaveChanges();
मैं क्या बता सकते हैं कि वे दोनों मेरे लक्ष्य को पूरा कर रहे हैं से:
मैं दो अलग अलग तरीकों कि दोनों काम करने के लिए दिखाई देते हैं की कोशिश की है। अन्य की तुलना में इन बेहतर में से एक है, या वे दोनों समान रूप से ठीक हैं (या गलत !?)
एफवाईआई, चूंकि आपने 'फर्स्टऑर्ड डीफॉल्ट' का उपयोग किया था, 'चीज' 'शून्य 'हो सकती है। 'चीज़' का उपयोग करने से पहले आपको' शून्य 'की जांच करनी होगी। –
@ जॉन सैंडर्स - thx। मैंने इसे सिंगल का उपयोग करने के लिए संपादित किया। – TTT