2010-12-07 7 views
0

私は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();

答えて

3

あなたのクエリ/基準が '結果トランスフォーマ'を使用していることを確認する必要があります。この場合、DistinctRootEntityResultTransformerが必要です。

query.SetResultTransformer(Transformers.DistinctRootEntity); 

次に、その関連付けはどのようにマップされていますか?それはバッグとして、またはセットとしてマッピングされていますか?

+0

これはバッグとしてマップされています。あなたの提案はうまくいった。どうもありがとうございました。 –