Ignore TransactionScope for specific query
If you wrap your log call inside of another transaction scope with the suppress option enabled, transaction scope will not be used. public override int SaveChanges() { try { return base.SaveChanges(); } catch (Exception ex) { using (var scope = new TransactionScope(TransactionScopeOption.Suppress)) { LogRepo.Log(message); // stuff to log from the context } throw; } }