【问题标题】:Help with removing duplicates帮助删除重复项
【发布时间】:2010-12-07 15:31:35
【问题描述】:

我在 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);

结果 = query.List();

【问题讨论】:

    标签: nhibernate nhibernate-criteria


    【解决方案1】:

    您应该确保您的查询/标准使用“resultransformer”。在这种情况下,您将需要 DistinctRootEntityResultTransformer。

     query.SetResultTransformer(Transformers.DistinctRootEntity);
    

    接下来,该关联是如何映射的?它是作为一个包映射的,还是作为一个集合映射的?

    【讨论】:

    • 它被映射为一个包。你的建议奏效了。非常感谢。
    猜你喜欢
    • 2021-01-02
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    • 2013-08-29
    • 1970-01-01
    • 1970-01-01
    • 2021-04-17
    • 1970-01-01
    相关资源
    最近更新 更多