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;
}
}