public void InjectConstraintsTo(DetachedDynQuery ddq) { var from = ddq.Query; from.Where("bp.State.ID = 1"); if (bpc.BlogId.HasValue) { from.Where().And(QualifyProperty("Blog.ID") + " = :BlogID"); ddq.SetInt32("BlogID", bpc.BlogId.Value); } if (bpc.CategoryId.HasValue) { from.Join(QualifyProperty("Category") + " c"); from.Where().And("c.ID = :CategoryID"); ddq.SetInt32("CategoryID", bpc.CategoryId.Value); } if (bpc.UserId.HasValue) { from.Where().And(QualifyProperty("BlogUsuser.ID") + " = :UserID"); ddq.SetInt32("UserID", bpc.UserId.Value); } }
private IDetachedQuery GetQueryWithConstraints(Select selection) { var result = new DetachedDynQuery(selection); InjectConstraintsTo(result); return(result); }
public PaginableDynQuery(ISession session, DetachedDynQuery query) : base(query) { if (session == null) { throw new ArgumentNullException("session"); } this.session = session; }
protected override IPaginable <Foo> GetPaginableWithLikeRestriction(ISession session) { var dynq = new From("Foo f"); dynq.Where("f.Name like :p1"); var ddq = new DetachedDynQuery(dynq); ddq.SetString("p1", "N_%"); return(new PaginableDynQuery <Foo>(session, ddq)); }
public void ToRowCount() { Select s = new Select("f.Name, f.Description, b.Descriptoin").From("Foo f"); s.From().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); }
protected override IPaginable <Foo> GetAllPaginable(ISession session) { var ddq = new DetachedDynQuery(new From("Foo")); return(new PaginableDynQuery <Foo>(session, ddq)); }