public void AddALotOfEntities(IEnumerable<Entity> entitiesToAdd)
{
var batchSize = 100;
var batches = entitiesToAdd.Batch(batchSize); // point 2
Parallel.ForEach(
batches,
new ParallelOptions { MaxDegreeOfParallelism = 4 }, // point 5
batch =>
{
using (var context = new MyDbContext("")) // point 3
{
context.Configuration.AutoDetectChangesEnabled = false; // point 1
context.Configuration.ValidateOnSaveEnabled = false; // point 6
context.DbSetWithEntities.AddRange(batch); // point 4
context.SaveChanges();
}
});
}