Пример #1
0
        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));
 }