public static bool CanBeColumn(Expression expression)
{
switch (expression.NodeType)
{
case (ExpressionType)SqlExpressionType.Column:
case (ExpressionType)SqlExpressionType.Scalar:
case (ExpressionType)SqlExpressionType.FunctionCall:
case (ExpressionType)SqlExpressionType.AggregateSubquery:
case (ExpressionType)SqlExpressionType.Aggregate:
case (ExpressionType)SqlExpressionType.Subquery:
return true;
case ExpressionType.Conditional:
return expression.Type.IsIntegralType();
default:
return false;
}
}