public void BeginTransaction() { if (current != null) throw new InvalidOperationException("A Transaction is active"); Transaction transaction = this.CreateTransaction(); current = transaction; lock (this) this.transactions.Add(current); }