public override async Task <int> SaveChangesAsync(
            bool acceptAllChanges,
            CancellationToken cancellation = default)
        {
            using var transaction = TransactionExt.BeginAsync(IsolationLevel.ReadCommitted);
            var changeLogs = GetChangeLogs();
            var result     = await base.SaveChangesAsync(acceptAllChanges, cancellation);

            await _outbox.SendAsync(changeLogs, cancellation);

            transaction.Complete();
            return(result);
        }