UPDATE all entities in the database.
All rows that match the entity key are considered as existing and are
UPDATED in the database.
// Easy to use context.BulkUpdate(list); // Easy to customize context.BulkUpdate(customers, options => options.ColumnPrimaryKeyExpression = customer => customer.Code);
Updating entities using a custom key from file importation is a typical scenario.
ChangeTracker being outstanding to track what's modified, it lacks in term of scalability and flexibility.
SaveChanges requires one database round-trip for every entity to
update. So if you need to
update 10000 entities, then 10000 database round-trips will be performed which is INSANELY slow.
BulkUpdate in counterpart offers great customization and requires the minimum database round-trips possible.
|Operations||1,000 Entities||2,000 Entities||5,000 Entities|
|SaveChanges||1,000 ms||2,000 ms||5,000 ms|
|BulkUpdate||50 ms||55 ms||65 ms|