internal Guid OnCommandExecuting(DbCommand command,
                                         DbTransaction?transaction, [CallerMemberName] string operation = "")
        {
            if (!IsEnabled(EventNames.CommandExecuting))
            {
                return(Guid.Empty);
            }

            var operationId = Guid.NewGuid();

            Write(
                EventNames.CommandExecuting,
                new CommandPayload
            {
                OperationId   = operationId,
                Operation     = operation,
                ConnectionId  = command.Connection !.GetGuid(),
                Command       = command,
                TransactionId = transaction?.GetId(),
                Timestamp     = Stopwatch.GetTimestamp()
            });