protected virtual DbExpression VisitFunctionExpression(DbFunctionExpression functionExpression)
{
switch (functionExpression.FunctionExpressionType)
{
case DbFunctionExpressionType.String:
return VisitStringFunctionExpression((DbStringFunctionExpression)functionExpression);
case DbFunctionExpressionType.Aggregate:
return VisitAggregateFunctionExpression((DbAggregateFunctionExpression)functionExpression);
case DbFunctionExpressionType.DateTime:
return VisitDateTimeFunctionExpression((DbDateTimeFunctionExpression)functionExpression);
case DbFunctionExpressionType.Mathematical:
return VisitMathematicalFunctionExpression((DbMathematicalFunctionExpression)functionExpression);
default:
throw new ArgumentOutOfRangeException("functionExpression", functionExpression.FunctionExpressionType, "Not supported");
}
}