public void CommonUse()
        {
            // some times the select can be static in son place (the service of a DAO)
            Select s = new Select("f.Name, f.Description, b.Descriptoin").From("Foo f join f.Bar b");

            // Create a new where by checking some contition
            Where where = new Where();

            // check something and set a condition of where clause
            where.And("f.Name like :pName");

            // check something else and set another condition of where clause
            where.And("b.Asociated > :pAso");

            // Inject the where to the select
            s.From().SetWhere(where);

            // Create a basic order by
            OrderBy order = new OrderBy().Add("b.Asociated", true);

            // Check some condition and add an order
            order.Add("f.Name");

            // Inject the OrderBy to the select
            s.From().SetOrderBy(order);

            // And: The winner is....
            string expected =
                "select f.Name, f.Description, b.Descriptoin from Foo f join f.Bar b where ((f.Name like :pName) and (b.Asociated > :pAso)) order by b.Asociated desc, f.Name";
            Assert.AreEqual(expected, s.Clause);
        }
예제 #2
0
 public IDetachedQuery TransformToRowCount()
 {
     Select s = new Select("count(*)");
     s.SetFrom(from.FromWhereClause());
     DetachedQuery result = new DetachedQuery(s.Clause);
     result.CopyParametersFrom(this);
     return result;
 }
예제 #3
0
        public DetachedDynQuery(Select select)
        {
            if (select == null)
            {
                throw new ArgumentNullException("select");
            }

            this.select = select;
            from = select.From();
        }
        public void ToRowCount()
        {
            Select s = new Select("f.Name, f.Description, b.Descriptoin").From("Foo f join f.Bar b");
            Where where = new Where();
            where.And("f.Name like :pName");
            where.And("b.Asociated > :pAso");
            s.From().SetWhere(where);
            OrderBy order = new OrderBy().Add("b.Asociated", true);
            order.Add("f.Name");
            s.From().SetOrderBy(order);

            DetachedDynQuery ddq = new DetachedDynQuery(s);
            DetachedQuery drc = (DetachedQuery) ddq.TransformToRowCount();
            Assert.AreEqual(
                "select count(*) from Foo f join f.Bar b where ((f.Name like :pName) and (b.Asociated > :pAso))",
                drc.Hql);
        }
 public void SelectWhereTest()
 {
     Select s =
         new Select("f.Name, f.Description, b.Descriptoin").From("Foo f join f.Bar b").Where("f.Name like :pName");
     Assert.AreEqual("f.Name, f.Description, b.Descriptoin", s.Expression);
     Assert.AreEqual(
         "select f.Name, f.Description, b.Descriptoin from Foo f join f.Bar b where ((f.Name like :pName))",
         s.Clause);
 }
 public void SelectTest()
 {
     Select s = new Select("f.Name, f.Description, b.Descriptoin").From("Foo f join f.Bar b");
     Assert.AreEqual("f.Name, f.Description, b.Descriptoin", s.Expression);
     Assert.AreEqual("select f.Name, f.Description, b.Descriptoin from Foo f join f.Bar b", s.Clause);
 }