【发布时间】:2013-10-24 00:27:30
【问题描述】:
我有一个与价格类有一对多关系的产品类。 所以一个产品可以有多个价格。
我需要查询 db 以获得 10 个 Price.amount
ICriteria criteria = session.CreateCriteria(typeof(Product));
criteria.SetFirstResult(pageNumber);
criteria.SetMaxResults(numberOfItemInPage);
criteria = criteria.CreateCriteria("PriceCollection");
criteria.Add(Restrictions.Le("Amount", new Decimal(2)));
criteria.SetResultTransformer(CriteriaSpecification.DistinctRootEntity);
我得到的不是 10 个产品,而是更少(即 5 个)。 原因是 SetMaxResults(10) 向我返回 10 个产品但有重复项。然后通过 SetResultTransformer(DistinctRootEntity) 删除重复项。
谁能告诉我在不增加 SetMaxResults() 的情况下获得 10 个独特产品的方法吗?我需要使用 pagenumber 作为某种索引。
【问题讨论】:
标签: nhibernate