public virtual RelationalCommandListBuilder EndCommand()
        {
            if (_commandBuilder.GetLength() != 0)
            {
                _commands.Add(_commandBuilder.BuildRelationalCommand());
                _commandBuilder = _commandBuilderFactory.Create();
            }

            return(this);
        }
        public virtual IRelationalCommand GenerateSql(IDictionary <string, object> parameterValues)
        {
            Check.NotNull(parameterValues, nameof(parameterValues));

            _sql = _commandBuilderFactory.Create();
            _parameterNameGenerator = _parameterNameGeneratorFactory.Create();
            _parameterValues        = parameterValues;

            Visit(SelectExpression);

            return(_sql.BuildRelationalCommand());
        }