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); }