Beispiel #1
0
        protected virtual Expression VisitIf(DbConditionalExpression ifx)
        {
            var check   = Visit(ifx.Check);
            var ifTrue  = Visit(ifx.IfTrue);
            var ifFalse = Visit(ifx.IfFalse);

            return(UpdateIf(ifx, check, ifTrue, ifFalse));
        }
Beispiel #2
0
        protected DbConditionalExpression UpdateIf(DbConditionalExpression ifx, Expression check,
                                                   Expression ifTrue, Expression ifFalse)
        {
            if (check != ifx.Check || ifTrue != ifx.IfTrue || ifFalse != ifx.IfFalse)
            {
                return(new DbConditionalExpression(check, ifTrue, ifFalse));
            }

            return(ifx);
        }
Beispiel #3
0
        protected override Expression VisitIf(DbConditionalExpression ifx)
        {
            var test =
                Expression.Condition(
                    ifx.Check,
                    ifx.IfTrue,
                    ifx.IfFalse != null
                        ? ifx.IfFalse
                        : ifx.IfTrue.Type == typeof(int)
                            ? (Expression)Expression.Property(this.provider, "RowsAffected")
                            : (Expression)Expression.Constant(ifx.IfTrue.Type.CreateInstance(), ifx.IfTrue.Type)
                    );

            return(this.Visit(test));
        }
 protected DbConditionalExpression UpdateIf(DbConditionalExpression ifx, Expression check, 
     Expression ifTrue, Expression ifFalse)
 {
     if (check != ifx.Check || ifTrue != ifx.IfTrue || ifFalse != ifx.IfFalse)
         return new DbConditionalExpression(check, ifTrue, ifFalse);
     
     return ifx;
 }
        protected virtual Expression VisitIf(DbConditionalExpression ifx)
        {
            var check = Visit(ifx.Check);
            var ifTrue = Visit(ifx.IfTrue);
            var ifFalse = Visit(ifx.IfFalse);

            return UpdateIf(ifx, check, ifTrue, ifFalse);
        }
 protected virtual bool CompareIf(DbConditionalExpression x, DbConditionalExpression y)
 {
     return(Compare(x.Check, y.Check) && Compare(x.IfTrue, y.IfTrue) &&
            Compare(x.IfFalse, y.IfFalse));
 }
 protected override Expression VisitIf(DbConditionalExpression ifx)
 {
     throw new NotSupportedException();
 }
 protected virtual bool CompareIf(DbConditionalExpression x, DbConditionalExpression y)
 {
     return Compare(x.Check, y.Check) && Compare(x.IfTrue, y.IfTrue) 
         && Compare(x.IfFalse, y.IfFalse);
 }