public virtual async Task <int> ExecuteAsync( [NotNull] IEnumerable <ModificationCommandBatch> commandBatches, [NotNull] RelationalConnection connection, CancellationToken cancellationToken = default(CancellationToken)) { Check.NotNull(commandBatches, "commandBatches"); Check.NotNull(connection, "connection"); var rowsAffected = 0; await connection.OpenAsync(cancellationToken).ConfigureAwait(false); RelationalTransaction startedTransaction = null; try { if (connection.Transaction == null) { startedTransaction = connection.BeginTransaction(); } foreach (var commandbatch in commandBatches) { rowsAffected += await commandbatch.ExecuteAsync( connection.Transaction, _typeMapper, _context, Logger, cancellationToken : cancellationToken) .ConfigureAwait(false); } if (startedTransaction != null) { startedTransaction.Commit(); } } catch { if (connection.Transaction != null) { connection.Transaction.Rollback(); } throw; } finally { if (startedTransaction != null) { startedTransaction.Dispose(); } connection.Close(); } return(rowsAffected); }
public virtual int Execute( [NotNull] IEnumerable <ModificationCommandBatch> commandBatches, [NotNull] RelationalConnection connection) { Check.NotNull(commandBatches, "commandBatches"); Check.NotNull(connection, "connection"); var rowsAffected = 0; connection.Open(); RelationalTransaction startedTransaction = null; try { if (connection.Transaction == null) { startedTransaction = connection.BeginTransaction(); } foreach (var commandbatch in commandBatches) { rowsAffected += commandbatch.Execute( connection.Transaction, _typeMapper, _context, Logger); } if (startedTransaction != null) { startedTransaction.Commit(); } } catch { if (connection.Transaction != null) { connection.Transaction.Rollback(); } throw; } finally { if (startedTransaction != null) { startedTransaction.Dispose(); } connection.Close(); } return(rowsAffected); }
public virtual async Task <int> ExecuteAsync( [NotNull] IEnumerable <ModificationCommandBatch> commandBatches, [NotNull] IRelationalConnection connection, CancellationToken cancellationToken = default(CancellationToken)) { Check.NotNull(commandBatches, nameof(commandBatches)); Check.NotNull(connection, nameof(connection)); var rowsAffected = 0; await connection.OpenAsync(cancellationToken).WithCurrentCulture(); RelationalTransaction startedTransaction = null; try { if (connection.Transaction == null) { startedTransaction = connection.BeginTransaction(); } foreach (var commandbatch in commandBatches) { rowsAffected += await commandbatch.ExecuteAsync( connection.Transaction, _typeMapper, _context, Logger, cancellationToken) .WithCurrentCulture(); } startedTransaction?.Commit(); } finally { startedTransaction?.Dispose(); connection.Close(); } return(rowsAffected); }
public virtual int Execute( IEnumerable <ModificationCommandBatch> commandBatches, IRelationalConnection connection) { Check.NotNull(commandBatches, nameof(commandBatches)); Check.NotNull(connection, nameof(connection)); var rowsAffected = 0; connection.Open(); RelationalTransaction startedTransaction = null; try { if (connection.Transaction == null) { startedTransaction = connection.BeginTransaction(); } foreach (var commandbatch in commandBatches) { rowsAffected += commandbatch.Execute( connection.Transaction, _typeMapper, _context, Logger); } startedTransaction?.Commit(); } finally { startedTransaction?.Dispose(); connection.Close(); } return(rowsAffected); }
protected virtual void ExecuteStatementsWithinTransaction( [NotNull] IEnumerable <SqlBatch> sqlStatements, [NotNull] RelationalConnection connection) { Check.NotNull(sqlStatements, "sqlStatements"); Check.NotNull(connection, "connection"); RelationalTransaction transaction = null; try { transaction = connection.BeginTransaction(IsolationLevel.Serializable); SqlExecutor.ExecuteNonQuery(connection, transaction.DbTransaction, sqlStatements); transaction.Commit(); } finally { if (transaction != null) { transaction.Dispose(); } } }