NHibernate Criteria,按财产数量选择

时间:2009-12-02 14:37:37

标签: nhibernate criteria

对于这个神秘的标题感到抱歉..

你能帮我解决一下基于财产数量的选择如何使用Criteria吗? 我有一个带有属性的对象(Pool)(PoolItems),我想选择所有的池w。超过5个PoolItems。

1 个答案:

答案 0 :(得分:5)

试试这个:

DetachedCriteria dCriteria = DetachedCriteria.For<PoolItem>("pItem")
            .SetProjection(Projections.Count("Id"))
            .Add(Restrictions.EqProperty("pItem.PoolID", "pool.Id"));

IList<Post> posts = Session.CreateCriteria<Pool>("pool")
                .Add(Subqueries.Gt(5, dCriteria)).List<Pool>();

假设PoolItem表具有PoolID列作为Pool表的外键。 这种关系是一对多的。如果您没有在PoolItem类中映射PoolID属性,并且您只拥有名为“Pool”的多对一对象映射,则在分离标准中将“pItem.PoolID”替换为“pItem.Pool.Id”。