2013-02-18 28 views
5

मैं सोच रहा था कि AutoDetectChangesEnabled DbContext पर संपत्ति डिफ़ॉल्ट रूप से गलत पर सेट है।ऑटोडिटेक्टChangesEnabled डिफ़ॉल्ट रूप से गलत पर सेट क्यों नहीं है?

मैं अपने संदर्भ में थोक डालना चाहता हूं और जैसा कि आप जानते हैं कि ऑटो-डिटेक्शन को झूठ में बदलना बेहतर प्रदर्शन करता है।

मेरा मतलब है, अगर मुझे पता है कि मेरे संदर्भ में परिवर्तनों का पता कब लगाना है, तो क्या कोई कारण है कि मुझे AutoDetectChangesEnabledfalse पर सेट नहीं करना चाहिए?

+0

मेरा अनुमान है कि ईएफ टीम ने सोचा था कि नियमित अपलोड नियमित सीआरयूडी शैली संचालन की तुलना में एक बढ़त मामला था ... और इस प्रकार सामान्य आवश्यकता के लिए डिफ़ॉल्ट हो गया। – lzcd

+0

@Izcd धन्यवाद यह समझ में आता है! –

उत्तर

4

मुझे लगता है कि यह संभावना है कि वे बॉक्स से बाहर काम करने के लिए अधिक आम और बहुत उपयोगी व्यवहार चाहते थे।

var mycontext = new DemoContext(); 
var myEntity = myContent.Thinhymybobs.find(akey); 
myEntity.PropX = newvalue; 
mycontext.saveChnages(); 

डीबी को भेजा गया अद्यतन डेल्टा जागरूक है और अद्यतन सेट स्टेटमेंट तदनुसार उपयोग किया जाता है। तो यह डीबी पर अनुकूल है।

डीबी पर "थोक" संचालन करते समय, प्रदर्शन प्रश्न आमतौर पर एक प्राकृतिक विचार होते हैं। इसलिए ट्रैकिंग बंद करने या वास्तव में ट्रैकिंग का उपयोग करने के बारे में सोचने का एक संभावित प्रश्न है जो मुझे लगता है।

यह आलेख आपको रूचि दे सकता है। एक प्रविष्टि का राज्य। http://msdn.microsoft.com/en-us/data/jj592676.aspx

+0

धन्यवाद, मैंने यह भी सोचा कि यही कारण था लेकिन मैं किसी और की राय चाहता था –