0

私は6か月前に同様の質問をしましたが、まだ回答も提案もされていません。

ここに問題があります。以下のコードは重複レコードを返しています。私が使用している実際に返されるレコードセットはModel.Productです。クエリは、ProductSkusテーブル内のDateAddedフィールドを調べて、Productが表示されるかどうかを確認します。唯一の問題は、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();

4

1 に答える 1

3

クエリ/基準が「resultransformer」を使用していることを確認する必要があります。この場合、DistinctRootEntityResultTransformerが必要になります。

 query.SetResultTransformer(Transformers.DistinctRootEntity);

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

于 2010-12-07T15:38:17.467 に答える