protected override Expression VisitColumn(SqlColumnExpression columnExpression)
{
if (!aliases.Contains(columnExpression.SelectAlias))
{
var nullableType = columnExpression.Type.MakeNullable();
if (nullableType == columnExpression.Type)
{
replacedExpressions.Add(columnExpression);
return new SqlConstantPlaceholderExpression(this.placeholderCount++, Expression.Constant(null, columnExpression.Type.MakeNullable()));
}
else
{
replacedExpressions.Add(columnExpression.ChangeToNullable());
return Expression.Convert(new SqlConstantPlaceholderExpression(this.placeholderCount++, Expression.Constant(null, columnExpression.Type.MakeNullable())), columnExpression.Type);
}
}
return base.VisitColumn(columnExpression);
}