帮助删除重复项

时间:2010-12-07 15:31:35

标签: nhibernate nhibernate-criteria

我在6个月前问了一个类似的问题,但仍然没有回答或提出任何建议。

这是问题所在。下面的代码返回重复记录。 我正在使用的实际返回记录集是Model.Product。 查询正在查看ProductSkus表中的DateAdded字段,以查看产品是否应显示。 唯一的问题是,如果超过1个ProductSkus匹配特定产品的要求,我会得到重复记录。我不能拥有这个。 我只关心访问Model.Product中包含的数据。不是Model.Product.ProductSkus。

有没有人遇到过类似的情况? 关于如何获得我想要的结果的任何想法?

提前致谢。

ICriteria query = this.Session.CreateCriteria<Model.Product>();
query.CreateAlias("ProductSkus", "ProdSku", JoinType.InnerJoin)
     .AddOrder(new Order("ProdSku.DateAdded", false))
     .AddOrder(new Order("Name", true))
     .Add(Restrictions.Ge("ProdSku.DateAdded", myDate))
     .SetMaxResults(100);

result = query.List();

1 个答案:

答案 0 :(得分:3)

您应该确保您的查询/条件使用'resultransformer'。在这种情况下,您将需要DistinctRootEntityResultTransformer。

 query.SetResultTransformer(Transformers.DistinctRootEntity);

接下来,该关联如何映射?它被映射为一个包还是一组?