Вы всегда должны использовать цикл. В таких методах, как AddCollection
или AddRange
, не может быть никакого выигрыша в производительности, потому что эти методы обычно работают при некоторой оптимизации производительности, когда внутренняя коллекция расширяется для всего диапазона, и она просто копируется вместо расширения коллекции для каждого вызова Add
. AddObject
делает гораздо больше, чем просто передает данные в какую-то внутреннюю коллекцию, поэтому ей все равно приходится обрабатывать объекты по одному.
Если вы хотите оптимизировать производительность самих вставок базы данных, вы должны перейти к другому решению, потому что EF не имеет пакетных или массовых изменений данных. Каждая запись передается как отдельная вставка в отдельном цикле туда и обратно в базу данных.