protected void SetTransaction(DbTransaction txn) { // We only accept wrapped transactions in order to avoid deadlocks if (txn == null || txn is SQLiteTransactionED <TConn> ) { _transaction = (SQLiteTransactionED <TConn>)txn; InnerCommand.Transaction = _transaction.InnerTransaction; } else { throw new InvalidOperationException(String.Format("Expected a {0}; got a {1}", typeof(SQLiteTransactionED <TConn>).FullName, txn.GetType().FullName)); } }