2013-02-18 3 views
5

Мне было интересно, почему свойство AutoDetectChangesEnabled на DbContext по умолчанию установлено в false.Почему значение AutoDetectChangesEnabled не установлено по умолчанию?

Я хочу, чтобы вставлять содержимое в мой контекст, и, как вы, возможно, знаете, что автоматическое обнаружение в false приводит к лучшим результатам.

Я имею в виду, если я знаю, когда обнаруживать изменения в моем контексте, есть ли причина, почему я не должен устанавливать AutoDetectChangesEnabled в false?

+0

Я полагаю, что команда EF считала, что массовая загрузка является краевым случаем по сравнению с обычными операциями стиля CRUD ... и, таким образом, не соответствует общему требованию. – lzcd

+0

@Izcd Спасибо, это имеет смысл! –

ответ

4

Я думаю, что, скорее всего, они хотели, чтобы более распространенное и очень полезное поведение работало из коробки.

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

Обновление, отправленное в БД, является сообщением delta, и инструкция по установке обновления используется соответствующим образом. Так что это дружелюбно в БД.

При выполнении операций «большого объема» на БД вопросы производительности обычно являются естественной мыслью. Так что удивляться тому, как изменить смену или даже EVEN с помощью отслеживания - это, вероятно, вопрос, который я чувствую.

Эта статья может вас заинтересовать. Состояние записи. http://msdn.microsoft.com/en-us/data/jj592676.aspx

+0

Спасибо, я тоже подумал, что это была причина, но мне хотелось чужого мнения –

Смежные вопросы