public virtual Expression VisitRawSqlDerivedTable(RawSqlDerivedTableExpression rawSqlDerivedTableExpression) { Check.NotNull(rawSqlDerivedTableExpression, nameof(rawSqlDerivedTableExpression)); _sql.AppendLine("("); using (_sql.Indent()) { var substitutions = new string[rawSqlDerivedTableExpression.Parameters.Length]; for (var index = 0; index < substitutions.Length; index++) { substitutions[index] = _sqlGenerator.GenerateParameterName( ParameterNameGenerator.GenerateNext()); _sql.AddParameter( substitutions[index], rawSqlDerivedTableExpression.Parameters[index]); } _sql.AppendLines( // ReSharper disable once CoVariantArrayConversion string.Format(rawSqlDerivedTableExpression.Sql, substitutions)); } _sql.Append(") AS ") .Append(_sqlGenerator.DelimitIdentifier(rawSqlDerivedTableExpression.Alias)); return(rawSqlDerivedTableExpression); }
public virtual Expression VisitRawSqlDerivedTable(RawSqlDerivedTableExpression rawSqlDerivedTableExpression) { Check.NotNull(rawSqlDerivedTableExpression, nameof(rawSqlDerivedTableExpression)); _sql.AppendLine("("); using (_sql.Indent()) { var substitutions = new object[rawSqlDerivedTableExpression.Parameters.Count()]; for (var index = 0; index < rawSqlDerivedTableExpression.Parameters.Count(); index++) { var parameterName = ParameterPrefix + "p" + _rawSqlParameterIndex++; var value = rawSqlDerivedTableExpression.Parameters[index]; _commandParameters.Add( new CommandParameter(parameterName, value, TypeMapper.GetDefaultMapping(value))); substitutions[index] = parameterName; } _sql.AppendLines(string.Format( rawSqlDerivedTableExpression.Sql, substitutions)); } _sql.Append(") AS ") .Append(DelimitIdentifier(rawSqlDerivedTableExpression.Alias)); return(rawSqlDerivedTableExpression); }
public virtual Expression VisitRawSqlDerivedTableExpression([NotNull] RawSqlDerivedTableExpression rawSqlDerivedTableExpression) { Check.NotNull(rawSqlDerivedTableExpression, nameof(rawSqlDerivedTableExpression)); _sql.AppendLine("("); using (_sql.Indent()) { var substitutions = new string[rawSqlDerivedTableExpression.Parameters.Count()]; for (var index = 0; index < rawSqlDerivedTableExpression.Parameters.Count(); index++) { var parameterName = "p" + index; _parameters.Add(parameterName); _parameterValues.Add(parameterName, rawSqlDerivedTableExpression.Parameters[index]); substitutions[index] = ParameterPrefix + parameterName; } _sql.AppendLines(string.Format( rawSqlDerivedTableExpression.Sql, substitutions)); } _sql.Append(") AS ") .Append(DelimitIdentifier(rawSqlDerivedTableExpression.Alias)); return(rawSqlDerivedTableExpression); }