protected override Expression Visit(Expression expression)
{
if (expression == null)
{
return null;
}
if (expression.NodeType != (ExpressionType)SqlExpressionType.Subquery)
{
base.Visit(expression);
}
if (this.canBeColumn(expression)
|| (expression.Type.IsIntegralType() && expression == rootExpression))
{
this.candidates.Add(expression);
}
return expression;
}