Does TransactionScope make any difference when there is just one insert in the table?
Is
MyObjectContext.Messages.Save( message, m => m.ID == message.ID);
MyObjectContext.SaveChanges();
any different from
using( var ts = new TransactionScope() )
{
MyObjectContext.Messages.Save( message, m => m.ID == message.ID);
MyObjectContext.SaveChanges();
ts.Complete();
}
and how exactly?
There is a difference. If you use just
SaveChangesyou still have a transaction but it has default isolation level for database server – in case of SQL server it is Read committed. If you useTransactionScopewith default configuration you have Serialized transaction isolation level but you can change it if you use other constructor ofTransactionScope.So it makes a difference if you need control over transaction isolation level.