public void Commit(IUnitOfWork unit) { IList<ITransaction> transactions = null; try { transactions = unit.GetTransactions().ToList(); foreach (var t in transactions) t.Commit(); } catch (Exception ex) { Trace.TraceError("Commit of unit of work failed: {0}", ex.ToString()); if (transactions != null) foreach (var t in transactions) t.Rollback(); } }