Which has better performance:
using (GADEEntities context = new GADEEntities(_connectionString))
{
using (TransactionScope transaction = new TransactionScope())
{
AddToContext1(context);
AddToContext2(context);
AddToContext3(context);
...
context.SaveChanges();
transaction.Complete();
}
}
or
using (GADEEntities context = new GADEEntities(_connectionString))
{
using (TransactionScope transaction = new TransactionScope())
{
AddToContext1(context);
context.SaveChanges();
AddToContext2(context);
context.SaveChanges();
AddToContext3(context);
context.SaveChanges();
...
transaction.Complete();
}
}
At any time, this could translate into 5000+ inserts into a DB on a clients machine. Is either way any different?
It’s very likely that your first version will be always faster, depending on what
AddToContextexactly does. If yourAddToContextmethod adds a single or only a few new objects to the context it will be definitely much faster. CallingSaveChangesafter each insert (and probably also update and delete) slows the performance extremely down.Here are a few measurements in a similar question:
Fastest Way of Inserting in Entity Framework