Когда мне следует вызывать SaveChanges () при создании тысяч объектов Entity Framework? (как во время импорта)

Я запускаю импорт, который будет иметь 1000 'с записей на каждом запуске. Просто ищу подтверждение моих предположений:

Что из этого имеет наибольшее значение:

БежатьSaveChanges() каждыйAddToClassName() вызов.БежатьSaveChanges() каждый н количествоAddToClassName() звонки.БежатьSaveChanges() послевсе изAddToClassName() звонки.

Первый вариант, вероятно, медленный, верно? Так как для этого нужно будет анализировать объекты EF в памяти, генерировать SQL и т. Д.

Я предполагаю, что второй вариант является лучшим из обоих миров, так как мы можем попытаться обойти этоSaveChanges() звони, и только теряй количество записей за раз, если одна из них выходит из строя. Возможно сохранить каждую партию в списке <>, ЕслиSaveChanges() вызов успешен, избавьтесь от списка. Если это не удается, зарегистрируйте элементы.

Последний вариант, вероятно, тоже будет очень медленным, поскольку каждый объект EF должен находиться в памяти доSaveChanges() называется. И если сохранение не удастся, ничего не будет совершено, верно?

Ответы на вопрос(5)

Ваш ответ на вопрос