/// <summary> /// Updates the in. /// </summary> /// <param name="in">The @in.</param> /// <param name="expression">The expression.</param> /// <param name="select">The select.</param> /// <param name="values">The values.</param> /// <returns></returns> protected InExpression UpdateIn(InExpression @in, Expression expression, SelectExpression select, IEnumerable <Expression> values) { if (expression != @in.Expression || select != @in.Select || values != @in.Values) { if (select != null) { return(new InExpression(expression, select)); } else { return(new InExpression(expression, values)); } } return(@in); }
/// <summary> /// Compares the in. /// </summary> /// <param name="a">A.</param> /// <param name="b">The b.</param> /// <returns></returns> protected virtual bool CompareIn(InExpression a, InExpression b) { return(this.Compare(a.Expression, b.Expression) && this.Compare(a.Select, b.Select) && this.CompareExpressionList(a.Values, b.Values)); }