コード例 #1
0
        public void RightOr()
        {
            var a = true;
            var b = true;
            var c = true;

            Expression <Func <bool> > initialExpression  = () => a && (b || c);
            Expression <Func <bool> > expectedExpression = () => (a && b) || (a && c);

            var actualExpression = PredicateDenormalizer.Denormalize(initialExpression);

            Assert.AreEqual(expectedExpression.ToString(), actualExpression.ToString());
        }
コード例 #2
0
        public void LeftOr()
        {
            var a = true;
            var b = true;
            var c = true;

            // (a || b) && c
            // ((a && c) || (b && c)
            Expression <Func <bool> > initialExpression  = () => (a || b) && c;
            Expression <Func <bool> > expectedExpression = () => (a && c) || (b && c);

            var actualExpression = PredicateDenormalizer.Denormalize(initialExpression);

            Assert.AreEqual(expectedExpression.ToString(), actualExpression.ToString());
        }
コード例 #3
0
        public void Visit_Include_Should_Set_RelatedObjects()
        {
            var queryable = Enumerable.Empty <DummyA>().AsQueryable();
            var query     = from x in queryable.Include(x => x.B1).Include(x => x.B2).Include(x => x.B1).Include(x => x.B2).Include(x => x.B1).Include(x => x.B2)
                            where x.Id == 1
                            select x;

            var expression = query.Expression;

            expression = ExpressionEvaluator.PartialEval(expression);
            expression = PredicateOperandAligner.Align(expression);
            expression = PredicateDenormalizer.Denormalize(expression);
            var queryTranslater = GetQueryTranslator();

            queryTranslater.Visit(expression);

            Assert.AreEqual(2, queryTranslater.RelatedObjects.Count());
            Assert.AreEqual("B1", queryTranslater.RelatedObjects.FirstOrDefault());
            Assert.AreEqual("B2", queryTranslater.RelatedObjects.LastOrDefault());
        }
コード例 #4
0
        public void Visit_Include_Should_Set_IncludeSelectors()
        {
            var queryable = new List <DummyA>
            {
                new DummyA {
                    B1 = new DummyB(), B2 = new DummyB()
                }
            }.AsQueryable();
            var query = from x in queryable.Include(x => x.B1.DummyAs)
                        where x.Id == 1
                        select x;

            var expression = query.Expression;

            expression = ExpressionEvaluator.PartialEval(expression);
            expression = PredicateOperandAligner.Align(expression);
            expression = PredicateDenormalizer.Denormalize(expression);
            var queryTranslater = GetQueryTranslator();

            queryTranslater.Visit(expression);

            Assert.AreEqual(2, queryTranslater.IncludeSelectors.Count());
        }