When using DbContext in a database-first scenario I found out that adding and deleting entities is very slow compared to ObjectContext. If adding 2000 entities and saving th
In EF6 you can now use AddRange and RemoveRange on DbSet.
From to the documentation on the links:
Note that if AutoDetectChangesEnabled is set to true (which is the default), then DetectChanges will be called once before {adding,deleting} any entities and will not be called again. This means that in some situations {Add,Remove}Range may perform significantly better than calling {Add,Remove} multiple times would do.
Try to add this to your DbContext tests:
dbContext.Configuration.AutoDetectChangesEnabled = false;
// Now do all your changes
dbContext.ChangeTracker.DetectChanges();
dbContext.SaveChanges();
and try to run your tests again.
There was some architectural change in DbContext API which checks changes in entities every time you Add
, Attach
or Delete
anything from the context. In ObjectContext API this detection run only when you triggered SaveChanges
. It is better solution for most common scenarios but it requires special handling for mass data processing.