NHibernate Criteria,按财产数量选择

hhr*_*avn 1 nhibernate criteria

对不起,这个神秘的标题......

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

tol*_*sm7 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>();
Run Code Online (Sandbox Code Playgroud)

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