Помогите с удалением дубликатов - PullRequest
0 голосов
/ 07 декабря 2010

Я задавал аналогичный вопрос 6 месяцев назад, на который до сих пор не было ответа или никаких предложений.

Вот проблема.Код ниже возвращает дубликаты записей.Фактический возвращенный набор записей, с которым я работаю, это Model.Product.Запрос просматривает поле DateAdded в таблице ProductSkus, чтобы увидеть, должен ли продукт отображаться.Единственная проблема заключается в том, что если более 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 ();

1 Ответ

3 голосов
/ 07 декабря 2010

Вы должны убедиться, что ваш запрос / критерии использует 'resultransformer'.В этом случае вам понадобится DistinctRootEntityResultTransformer.

 query.SetResultTransformer(Transformers.DistinctRootEntity);

Кроме того, как сопоставляется эта связь?Это сопоставлено как сумка, или как набор?

...