Я тут изобрёл офигенный класс для быстроого массового обновления в базе данных (MS SQL Server). В боевую уже неоднократно его применил, это просто окончательное решение вопроса массового обновления данных из C# приложения.
Забавно, что никто не додумался раньше, вроде.
Что делает. Берёт На входе большой массив сущностей EF.
На выходе генерирует большой SQL скрипт примерно такого содержания:
1. Объявление временной переменной табличного типа (более удобный вид временной таблицы)
2. Инсёртит туда все обновляемые строки
3. Далее конструкция Transact Sql MERGE, в качестве источника - темповая таблица из переменной, в качестве цели обновляемая таблица. Ну и условия, какая секция таблицы обновляется
По сравнению с таким обновлением через Entity Framework прирост в производительности - уровня "всё вместе работает вместо полчаса-час за пару минут", когда там под сотню тысяч строк может обновляться
На прошлой работе была самодельная CMS, которая большие запросы именно в таком режиме делала. И, вроде, если данных чуть поменьше, то могла ещё через огромный XML их обработать.