public void HavingDetachedCriteriaThenCanGetExecutableCriteriaFromStatelessSession() { var dc = DetachedCriteria.For<Paper>(); using (IStatelessSession ss = sessions.OpenStatelessSession()) { ICriteria criteria = null; Executing.This(()=> criteria = dc.GetExecutableCriteria(ss)).Should().NotThrow(); criteria.Executing(c => c.List()).NotThrows(); } }
public void DetachedCriteriaCorrelatedQueryExplodes() { using (ISession session = OpenSession()) { DetachedCriteria memberGroupCriteria = DetachedCriteria .For <MemberGroup>() .CreateAlias("Members", "m") .CreateAlias("Forums", "f") .Add(Restrictions.EqProperty("m.Id", "p.Id")) .SetProjection(Projections.Property("f.Id")) ; var ids = new List <Guid>(); ids.Add(person0Id); ids.Add(person1Id); DetachedCriteria forumCriteria = DetachedCriteria .For <Forum>("fff") .Add(Restrictions.NotEqProperty("Id", "p.Id")) .Add(Subqueries.PropertyIn("Id", memberGroupCriteria)) .SetProjection ( Projections.Sum("Dollars") ) ; DetachedCriteria personCriteria = DetachedCriteria .For <Person>("p") .Add(Restrictions.InG("Id", ids)) .SetProjection ( Projections .ProjectionList() .Add(Projections.Property("Name"), "Name") .Add(Projections.SubQuery(forumCriteria), "Sum") ) .SetResultTransformer(Transformers.AliasToBean(typeof(Bar))) ; ICriteria criteria = personCriteria.GetExecutableCriteria(session); criteria.Executing(c => c.List()).NotThrows(); } }
public void TestQuery() { using (ISession session = OpenSession()) { DetachedCriteria page = DetachedCriteria.For <T1>() .SetFirstResult(3) .SetMaxResults(7) .AddOrder(NHibernate.Criterion.Order.Asc(Projections.Id())) .SetProjection(Projections.Id()); ICriteria crit = session.CreateCriteria <T1>() .Add(Subqueries.PropertyIn("id", page)) .SetResultTransformer(new DistinctRootEntityResultTransformer()) .SetFetchMode("Children", NHibernate.FetchMode.Join); session.EnableFilter("nameFilter").SetParameter("name", "Another child"); crit.Executing(c => c.List <T1>()).NotThrows(); } }