Nhibernate 帮助删除重复项

Nhibernate 帮助删除重复项,nhibernate,nhibernate-criteria,Nhibernate,Nhibernate Criteria,6个月前,我曾问过一个类似的问题,至今仍未得到回答或提出任何建议 问题就在这里。下面的代码返回重复记录。 我使用的实际返回记录集是Model.Product。 查询正在查看ProductSkus表中的DateAdded字段,以查看产品是否应显示。 唯一的问题是,如果超过1个产品SKU符合特定产品的要求,我会得到重复记录。我不能要这个。 我只关心访问Model.Product中包含的数据。不是Model.Product.productSKU 有没有人遇到过类似的情况? 关于如何得到我想要的结果有什

6个月前,我曾问过一个类似的问题,至今仍未得到回答或提出任何建议

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

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

提前谢谢

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);
ICriteria query=this.Session.CreateCriteria();
query.CreateAlias(“ProductSkus”、“ProdSku”、JoinType.InnerJoin)
.AddOrder(新订单(“ProdSku.DateAdded”,false))
.AddOrder(新订单(“名称”,真实))
.Add(Restrictions.Ge(“ProdSku.DateAdded”,myDate))
.SetMaxResults(100);

结果=query.List()

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

 query.SetResultTransformer(Transformers.DistinctRootEntity);

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

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

 query.SetResultTransformer(Transformers.DistinctRootEntity);

接下来,这个关联是如何映射的?它映射为一个包还是一套?

它映射为一个包。你的建议奏效了。非常感谢。它被映射为一个包。你的建议奏效了。非常感谢你。