/// <summary>
 ///     Called when use of a <see cref="DbTransaction" /> has failed with an exception.
 /// </summary>
 /// <param name="transaction"> The transaction. </param>
 /// <param name="eventData"> Contextual information about connection and transaction. </param>
 /// <param name="cancellationToken"> The cancellation token. </param>
 /// <returns> A <see cref="Task" /> representing the asynchronous operation. </returns>
 public virtual Task TransactionFailedAsync(
     DbTransaction transaction,
     TransactionErrorEventData eventData,
     CancellationToken cancellationToken = default)
 => Task.CompletedTask;
 /// <summary>
 ///     Called when use of a <see cref="DbTransaction" /> has failed with an exception.
 /// </summary>
 /// <param name="transaction"> The transaction. </param>
 /// <param name="eventData"> Contextual information about connection and transaction. </param>
 public virtual void TransactionFailed(
     DbTransaction transaction,
     TransactionErrorEventData eventData)
 {
 }