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 bool Equals(Expression x, Expression y) { return(SqlExpressionComparer.Equals(x, y, options)); }