public RelationalCommandBuilder(ILogger logger, DiagnosticSource diagnosticSource, IRelationalTypeMapper typeMapper)
        {
            Check.NotNull(logger, nameof(logger));
            Check.NotNull(diagnosticSource, nameof(diagnosticSource));
            Check.NotNull(typeMapper, nameof(typeMapper));

            _logger           = logger;
            _diagnosticSource = diagnosticSource;
            ParameterBuilder  = new RelationalParameterBuilder(typeMapper);
        }
        public virtual void AddCompositeParameter(string invariantName, Action <IRelationalParameterBuilder> buildAction)
        {
            Check.NotEmpty(invariantName, nameof(invariantName));
            Check.NotNull(buildAction, nameof(buildAction));

            var innerList = new RelationalParameterBuilder(TypeMapper);

            buildAction(innerList);

            if (innerList.Parameters.Count > 0)
            {
                _parameters.Add(new CompositeRelationalParameter(invariantName, innerList.Parameters));
            }
        }