public async Task <RelationalDataReader> ExecuteReaderAsync( IRelationalConnection connection, IReadOnlyDictionary <string, object> parameterValues, CancellationToken cancellationToken = new CancellationToken()) { var errorNumber = PreExecution(connection); var result = await _realRelationalCommand.ExecuteReaderAsync(connection, parameterValues, cancellationToken); if (errorNumber.HasValue) { connection.DbConnection.Close(); throw SqlExceptionFactory.CreateSqlException(errorNumber.Value); } return(result); }
public async Task <RelationalDataReader> ExecuteReaderAsync( IRelationalConnection connection, IReadOnlyDictionary <string, object> parameterValues, CancellationToken cancellationToken = new CancellationToken()) { var errorNumber = PreExecution(connection); var result = await _realRelationalCommand.ExecuteReaderAsync(connection, parameterValues, cancellationToken); if (errorNumber != null) { connection.DbConnection.Close(); throw new PostgresException { SqlState = errorNumber }; } return(result); }
public async Task <RelationalDataReader> ExecuteReaderAsync( RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken = default) { var connection = parameterObject.Connection; var errorNumber = PreExecution(connection); var result = await _realRelationalCommand.ExecuteReaderAsync(parameterObject, cancellationToken); if (errorNumber is not null) { connection.DbConnection.Close(); result.Dispose(); // Normally, in non-test case, reader is disposed by using in caller code throw new PostgresException("", "", "", errorNumber); } return(result); }
public async Task <RelationalDataReader> ExecuteReaderAsync( RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken = new CancellationToken()) { var connection = parameterObject.Connection; var errorNumber = PreExecution(connection); var result = await _realRelationalCommand.ExecuteReaderAsync(parameterObject, cancellationToken); if (errorNumber.HasValue) { connection.DbConnection.Close(); result.Dispose(); // Normally, in non-test case, reader is disposed by using in caller code throw SqlExceptionFactory.CreateSqlException(errorNumber.Value); } return(result); }
public async Task <RelationalDataReader> ExecuteReaderAsync( IRelationalConnection connection, IReadOnlyDictionary <string, object> parameterValues, IDiagnosticsLogger <DbLoggerCategory.Database.Command> logger, CancellationToken cancellationToken = new CancellationToken()) { var errorNumber = PreExecution(connection); var result = await _realRelationalCommand.ExecuteReaderAsync(connection, parameterValues, logger, cancellationToken); if (errorNumber.HasValue) { connection.DbConnection.Close(); result.Dispose(); // Normally, in non-test case, reader is disposed by using in caller code throw SqlExceptionFactory.CreateSqlException(errorNumber.Value); } return(result); }