У меня есть импорт из плоского файла в EDM против SQL Server, где на самом деле изменяется очень мало записей (в который раз выполняется тот же файл импорта), но, тем не менее, вызов SaveChanges для обновления 500 записей занимает довольно много времени. Я предполагаю, что это потому, что я устанавливаю каждое свойство объекта-сущности, а затем EF использует ReportPropertyChanged
, чтобы указать, что запись должна быть обновлена в БД.
Должен ли я на самом деле сравнивать все значения свойств импортируемого отчета со значениями свойства сущности и назначать свойству сущности только в том случае, если они различаются, чтобы избежать этих длительных обновлений без изменений?
EDIT:
Сгенерированный код для установщика для свойства Обновлено выглядит следующим образом. Я вижу, что назначение является безусловным, поэтому я спрашиваю, является ли фактическая генерация оператора UPDATE для БД условной или нет.
set
{
OnUpdatedChanging(value);
ReportPropertyChanging("Updated");
_Updated = StructuralObject.SetValidValue(value);
ReportPropertyChanged("Updated");
OnUpdatedChanged();
}