2010-12-07 205 views
0

6個月前,我已經提出了類似問題,但仍未回答或提出任何建議。刪除重複項幫助

這是問題所在。下面的代碼返回重複記錄。 我正在使用的實際返回的記錄集是Model.Product。 查詢查看ProductSkus表中的DateAdded字段以查看產品是否應顯示。 唯一的問題是如果多於一個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();

回答

3

您應該確保您的查詢/標準使用'resultransformer'。在這種情況下,您需要DistinctRootEntityResultTransformer。

query.SetResultTransformer(Transformers.DistinctRootEntity); 

接下來,該關聯如何映射?它被映射爲一個包還是一個集?

+0

它被映射爲一個袋子。你的建議奏效了。非常感謝你。 – 2010-12-07 15:47:41