2013-02-18 142 views
5

我想知道爲什麼DbContext上的AutoDetectChangesEnabled屬性默認設置爲false。默認情況下,爲什麼AutoDetectChangesEnabled設置爲false?

我想批量插入到我的上下文中,因爲您可能知道將自動檢測設置爲false會帶來更好的性能。

我的意思是,如果我知道何時檢測到我的上下文的變化,是否有任何理由爲什麼我不應該設置AutoDetectChangesEnabledfalse

+0

我的猜測是EF團隊認爲批量上傳是一種邊緣情況,與普通的CRUD風格操作相比...因此默認爲通用要求。 – lzcd 2013-02-18 21:41:42

+0

@Izcd感謝這是有道理的! – 2013-02-19 13:46:36

回答

4

我認爲他們可能想要更常用和非常有用的行爲來開箱即用。

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

發送到數據庫的更新是增量感知,並且相應地使用更新設置語句。 所以這對DB很友善。

在對數據庫進行「批量」操作時,性能問題通常是一種自然的想法。所以想知道關於改變關閉還是甚至使用跟蹤都是我感覺的一個可能的問題。

這篇文章可能會讓你感興趣。入口的狀態。 http://msdn.microsoft.com/en-us/data/jj592676.aspx

+0

謝謝,我也認爲這是爲什麼,但我想要別人的意見的原因 – 2013-02-19 13:48:48

相關問題