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 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 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); }