Represents calling a built in mathematical function in the target DBMS.
Inheritance: DbFunctionExpression
        /// <summary>
        /// Translates the <paramref name="mathematicalFunctionExpression"/> into a string representation.
        /// </summary>
        /// <param name="mathematicalFunctionExpression">The <see cref="DbMathematicalFunctionExpression"/> to translate.</param>
        /// <returns><see cref="string"/></returns>
        protected override DbExpression VisitMathematicalFunctionExpression(DbMathematicalFunctionExpression mathematicalFunctionExpression)
        {
            var functionName   = GetMathematicalFunctionBody(mathematicalFunctionExpression.MathematicalFunctionExpressionType);
            var functionSyntax = CreateDefaultFunctionSyntax(functionName, mathematicalFunctionExpression.Arguments);

            return(functionSyntax);
        }
        /// <summary>
        /// Translates the <paramref name="mathematicalFunctionExpression"/> into a string representation.
        /// </summary>
        /// <param name="mathematicalFunctionExpression">The <see cref="DbMathematicalFunctionExpression"/> to translate.</param>
        /// <returns><see cref="DbExpression"/></returns>
        protected virtual DbExpression VisitMathematicalFunctionExpression(DbMathematicalFunctionExpression mathematicalFunctionExpression)
        {
            var arguments = VisitListExpression(mathematicalFunctionExpression.Arguments);

            if (!ReferenceEquals(arguments, mathematicalFunctionExpression.Arguments))
            {
                return(ExpressionFactory.MakeMathematicalFunction(mathematicalFunctionExpression.MathematicalFunctionExpressionType,
                                                                  arguments.ToArray()));
            }

            return(mathematicalFunctionExpression);
        }
 /// <summary>
 /// Creates a new <see cref="DbDateTimeFunctionExpression"/>.
 /// </summary>
 /// <param name="mathematicalFunctionExpressionType">The <see cref="DbMathematicalFunctionExpressionType"/> that specifies the type of <see cref="DbMathematicalFunctionExpression"/> to create.</param>
 /// <param name="arguments">A list of <see cref="DbExpression"/> instances that is used as arguments when calling the function.</param>
 /// <returns>A <see cref="DbMathematicalFunctionExpression"/> instance.</returns>
 public DbMathematicalFunctionExpression MakeMathematicalFunction(DbMathematicalFunctionExpressionType mathematicalFunctionExpressionType, DbExpression[] arguments)
 {
     var mathematicalFunctionExpression = new DbMathematicalFunctionExpression(mathematicalFunctionExpressionType, arguments);
     return mathematicalFunctionExpression;
 }
 /// <summary>
 /// Translates the <paramref name="mathematicalFunctionExpression"/> into a string representation.
 /// </summary>
 /// <param name="mathematicalFunctionExpression">The <see cref="DbMathematicalFunctionExpression"/> to translate.</param>
 /// <returns><see cref="string"/></returns>
 protected override DbExpression VisitMathematicalFunctionExpression(DbMathematicalFunctionExpression mathematicalFunctionExpression)
 {
     var functionName = GetMathematicalFunctionBody(mathematicalFunctionExpression.MathematicalFunctionExpressionType);
     var functionSyntax = CreateDefaultFunctionSyntax(functionName, mathematicalFunctionExpression.Arguments);
     return functionSyntax;
 }
        /// <summary>
        /// Translates the <paramref name="mathematicalFunctionExpression"/> into a string representation.
        /// </summary>
        /// <param name="mathematicalFunctionExpression">The <see cref="DbMathematicalFunctionExpression"/> to translate.</param>
        /// <returns><see cref="DbExpression"/></returns>
        protected virtual DbExpression VisitMathematicalFunctionExpression(DbMathematicalFunctionExpression mathematicalFunctionExpression)
        {
            var arguments = VisitListExpression(mathematicalFunctionExpression.Arguments);
            if (!ReferenceEquals(arguments, mathematicalFunctionExpression.Arguments))
                return ExpressionFactory.MakeMathematicalFunction(mathematicalFunctionExpression.MathematicalFunctionExpressionType,
                                                            arguments.ToArray());

            return mathematicalFunctionExpression;
        }