Example #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);
            }
        }
Example #2
0
        public static bool Equals(Expression left, Expression right, bool ignoreConstantPlaceholderValues)
        {
            var visitor = new SqlExpressionComparer(right);

            visitor.ignoreConstantPlaceholderValues = ignoreConstantPlaceholderValues;

            visitor.Visit(left);

            return(visitor.result);
        }
Example #3
0
        public static bool Equals(Expression left, Expression right, SqlExpressionComparerOptions options)
        {
            var visitor = new SqlExpressionComparer(right)
            {
                options = options
            };

            visitor.Visit(left);

            return(visitor.result);
        }
Example #4
0
        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));
 }