public static Expression Substitute(Expression expression, ref int placeholderCount, List <Expression> replacedExpressions)
{
var aliases = SqlDeclaredAliasesGatherer.Gather(expression);
var visitor = new SqlOuterQueryReferencePlaceholderSubstitutor(placeholderCount, aliases, replacedExpressions);
var retval = visitor.Visit(expression);
placeholderCount = visitor.placeholderCount;
return(retval);
}