protected override Expression VisitConstant(ConstantExpression constantExpression) { ConstantExpression current; if (!this.TryGetCurrent(constantExpression, out current)) { return(constantExpression); } if ((this.options & SqlExpressionComparerOptions.IgnoreConstants) != 0) { this.result &= constantExpression.Type == current.Type; return(constantExpression); } if (!(this.result &= (current.Type == constantExpression.Type))) { return(constantExpression); } if (typeof(Expression).IsAssignableFrom(current.Type)) { this.result &= SqlExpressionComparer.Equals((Expression)current.Value, (Expression)constantExpression.Value, options); return(constantExpression); } else { this.result &= Object.Equals(current.Value, constantExpression.Value); return(constantExpression); } }
public static bool Equals(Expression left, Expression right, bool ignoreConstantPlaceholderValues) { var visitor = new SqlExpressionComparer(right); visitor.ignoreConstantPlaceholderValues = ignoreConstantPlaceholderValues; visitor.Visit(left); return(visitor.result); }
public static bool Equals(Expression left, Expression right, SqlExpressionComparerOptions options) { var visitor = new SqlExpressionComparer(right) { options = options }; visitor.Visit(left); return(visitor.result); }
public static bool Equals(Expression left, Expression right, SqlExpressionComparerOptions options) { if (ReferenceEquals(left, right)) { return(true); } if (left == null || right == null) { return(false); } var visitor = new SqlExpressionComparer(right) { options = options }; visitor.Visit(left); return(visitor.result); }
public bool Equals(Expression x, Expression y) { return(SqlExpressionComparer.Equals(x, y, options)); }