예제 #1
0
        public void Disjunction()
        {
            ICriteriaBuilder cb = EJBContainer.Instance.EntityManager.GetCriteriaBuilder();
            ICriteriaQuery   cq = cb.CreateQuery();
            IRoot            r  = cq.From("Students");

            IPredicate criteria = cb.Disjunction();

            IParameterExpression pr = cb.Parameter(System.Data.SqlDbType.Int, "3");

            criteria = cb.Or(criteria,
                             cb.Equal(r.Get("SequenceNumber"), pr)
                             );

            pr = cb.Parameter(System.Data.SqlDbType.Int, "'Jonas'");

            criteria = cb.Or(criteria,
                             cb.Equal(r.Get("FirstName"), pr)
                             );

            pr = cb.Parameter(System.Data.SqlDbType.Int, "'Petraitis'");

            criteria = cb.Or(criteria,
                             cb.Equal(r.Get("LastName"), pr)
                             );

            Assert.AreEqual("Students.SequenceNumber = 3 OR Students.FirstName = 'Jonas' OR Students.LastName = 'Petraitis'", criteria.ExpressionValue);
        }
예제 #2
0
        public void Or()
        {
            ICriteriaBuilder cb = EJBContainer.Instance.EntityManager.GetCriteriaBuilder();

            ICriteriaQuery cc = cb.CreateQuery();

            IRoot r = cc.From("Students");

            IPredicate left = cb.Equal(r.Get("Name"), cb.Literal("'Jonas'"));

            IPredicate right = cb.Equal(r.Get("Faculty_Id"), cb.Literal("3"));

            IExpression expr = cb.Or(left, right);

            Assert.AreEqual("Students.Name = 'Jonas' OR Students.Faculty_Id = 3", expr.ExpressionValue);
        }