/// <summary> /// Translates the <paramref name="conditionalExpression"/> into a string representation. /// </summary> /// <param name="conditionalExpression">The <see cref="DbConditionalExpression"/> to translate.</param> /// <returns><see cref="string"/></returns> protected override DbExpression VisitConditionalExpression(DbConditionalExpression conditionalExpression) { string syntax = string.Format("CASE WHEN {0} THEN {1} ELSE {2} END", Visit(conditionalExpression.Condition), Visit(conditionalExpression.IfTrue), Visit(conditionalExpression.IfFalse)); return(ExpressionFactory.Sql(syntax)); }
/// <summary> /// Translates the <paramref name="conditionalExpression"/> into a string representation. /// </summary> /// <param name="conditionalExpression">The <see cref="DbConditionalExpression"/> to translate.</param> /// <returns><see cref="DbExpression"/></returns> protected virtual DbExpression VisitConditionalExpression(DbConditionalExpression conditionalExpression) { var conditionExpression = Visit(conditionalExpression.Condition); var ifFalseExpression = Visit(conditionalExpression.IfFalse); var ifTrueExpression = Visit(conditionalExpression.IfTrue); if (!ReferenceEquals(conditionalExpression.Condition, conditionExpression) || !ReferenceEquals(conditionalExpression.IfFalse, ifFalseExpression) || !ReferenceEquals(conditionalExpression.IfTrue, ifTrueExpression)) { return(ExpressionFactory.Conditional(conditionExpression, ifTrueExpression, ifFalseExpression)); } return(conditionalExpression); }
/// <summary> /// Creates a new <see cref="DbConditionalExpression"/>. /// </summary> /// <param name="condition">The <see cref="DbExpression"/> that is evaluated.</param> /// <param name="trueExpression">The <see cref="DbExpression"/> that is executed if the <paramref name="condition"/> evaluates to <b>true</b>.</param> /// <param name="falseExpression">The <see cref="DbExpression"/> that is executed if the <paramref name="condition"/> evaluates to <b>false</b>.</param> /// <returns>A <see cref="DbConditionalExpression"/> instance.</returns> public DbConditionalExpression Conditional(DbExpression condition, DbExpression trueExpression, DbExpression falseExpression) { var conditionalExpression = new DbConditionalExpression { Condition = condition, IfTrue = trueExpression, IfFalse = falseExpression }; return conditionalExpression; }
/// <summary> /// Translates the <paramref name="conditionalExpression"/> into a string representation. /// </summary> /// <param name="conditionalExpression">The <see cref="DbConditionalExpression"/> to translate.</param> /// <returns><see cref="string"/></returns> protected override DbExpression VisitConditionalExpression(DbConditionalExpression conditionalExpression) { string syntax = string.Format("CASE WHEN {0} THEN {1} ELSE {2} END", Visit(conditionalExpression.Condition), Visit(conditionalExpression.IfTrue), Visit(conditionalExpression.IfFalse)); return ExpressionFactory.Sql(syntax); }
/// <summary> /// Translates the <paramref name="conditionalExpression"/> into a string representation. /// </summary> /// <param name="conditionalExpression">The <see cref="DbConditionalExpression"/> to translate.</param> /// <returns><see cref="DbExpression"/></returns> protected virtual DbExpression VisitConditionalExpression(DbConditionalExpression conditionalExpression) { var conditionExpression = Visit(conditionalExpression.Condition); var ifFalseExpression = Visit(conditionalExpression.IfFalse); var ifTrueExpression = Visit(conditionalExpression.IfTrue); if (!ReferenceEquals(conditionalExpression.Condition, conditionExpression) || !ReferenceEquals(conditionalExpression.IfFalse, ifFalseExpression) || !ReferenceEquals(conditionalExpression.IfTrue, ifTrueExpression)) { return ExpressionFactory.Conditional(conditionExpression, ifTrueExpression, ifFalseExpression); } return conditionalExpression; }