/// <summary> /// Translates the <paramref name="dateTimeFunctionExpression"/> into a string representation. /// </summary> /// <param name="dateTimeFunctionExpression">The <see cref="DbDateTimeFunctionExpression"/> to translate.</param> /// <returns><see cref="DbExpression"/></returns> protected virtual DbExpression VisitDateTimeFunctionExpression(DbDateTimeFunctionExpression dateTimeFunctionExpression) { var arguments = VisitListExpression(dateTimeFunctionExpression.Arguments); if (!ReferenceEquals(arguments, dateTimeFunctionExpression.Arguments)) { return(ExpressionFactory.MakeDateTimeFunction(dateTimeFunctionExpression.DateTimeFunctionExpressionType, arguments.ToArray())); } return(dateTimeFunctionExpression); }
/// <summary> /// Translates the <paramref name="dateTimeFunctionExpression"/> into a string representation. /// </summary> /// <param name="dateTimeFunctionExpression">The <see cref="DbDateTimeFunctionExpression"/> to translate.</param> /// <returns><see cref="string"/></returns> protected override DbExpression VisitDateTimeFunctionExpression(DbDateTimeFunctionExpression dateTimeFunctionExpression) { string body = GetDateTimeFunctionBody(dateTimeFunctionExpression.DateTimeFunctionExpressionType); switch (dateTimeFunctionExpression.DateTimeFunctionExpressionType) { case DbDateTimeFunctionExpressionType.AddYears: case DbDateTimeFunctionExpressionType.AddMonths: case DbDateTimeFunctionExpressionType.AddDays: case DbDateTimeFunctionExpressionType.AddHours: case DbDateTimeFunctionExpressionType.AddMinutes: case DbDateTimeFunctionExpressionType.AddSeconds: case DbDateTimeFunctionExpressionType.AddMilliseconds: return(CreateDefaultFunctionSyntax(body, dateTimeFunctionExpression.Arguments.Reverse())); default: return(CreateDefaultFunctionSyntax(body, dateTimeFunctionExpression.Arguments)); } }
/// <summary> /// Creates a new <see cref="DbDateTimeFunctionExpression"/>. /// </summary> /// <param name="dateTimeFunctionExpressionType">The <see cref="DbDateTimeFunctionExpressionType"/> that specifies the type of <see cref="DbDateTimeFunctionExpression"/> 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="DbDateTimeFunctionExpression"/> instance.</returns> public DbDateTimeFunctionExpression MakeDateTimeFunction(DbDateTimeFunctionExpressionType dateTimeFunctionExpressionType, DbExpression[] arguments) { var dateTimeFunctionExpression = new DbDateTimeFunctionExpression(dateTimeFunctionExpressionType, arguments); return dateTimeFunctionExpression; }
/// <summary> /// Translates the <paramref name="dateTimeFunctionExpression"/> into a string representation. /// </summary> /// <param name="dateTimeFunctionExpression">The <see cref="DbDateTimeFunctionExpression"/> to translate.</param> /// <returns><see cref="string"/></returns> protected override DbExpression VisitDateTimeFunctionExpression(DbDateTimeFunctionExpression dateTimeFunctionExpression) { string body = GetDateTimeFunctionBody(dateTimeFunctionExpression.DateTimeFunctionExpressionType); switch (dateTimeFunctionExpression.DateTimeFunctionExpressionType) { case DbDateTimeFunctionExpressionType.AddYears: case DbDateTimeFunctionExpressionType.AddMonths: case DbDateTimeFunctionExpressionType.AddDays: case DbDateTimeFunctionExpressionType.AddHours: case DbDateTimeFunctionExpressionType.AddMinutes: case DbDateTimeFunctionExpressionType.AddSeconds: case DbDateTimeFunctionExpressionType.AddMilliseconds: return CreateDefaultDateTimeFunctionSyntax(body, dateTimeFunctionExpression.Arguments); default: return CreateDefaultDateTimeFunctionSyntax(body, dateTimeFunctionExpression.Arguments); } }
/// <summary> /// Translates the <paramref name="dateTimeFunctionExpression"/> into a string representation. /// </summary> /// <param name="dateTimeFunctionExpression">The <see cref="DbDateTimeFunctionExpression"/> to translate.</param> /// <returns><see cref="DbExpression"/></returns> protected virtual DbExpression VisitDateTimeFunctionExpression(DbDateTimeFunctionExpression dateTimeFunctionExpression) { var arguments = VisitListExpression(dateTimeFunctionExpression.Arguments); if (!ReferenceEquals(arguments, dateTimeFunctionExpression.Arguments)) return ExpressionFactory.MakeDateTimeFunction(dateTimeFunctionExpression.DateTimeFunctionExpressionType, arguments.ToArray()); return dateTimeFunctionExpression; }