Represents a DbExpression that has a conditional operator.
Inheritance: DbExpression
Exemplo n.º 1
0
        /// <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));
        }
Exemplo n.º 2
0
        /// <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;
 }