Версия nHibernate 2.1
Как видно из множества подобных вопросов - мы не одиноки в том, что испытываем проблемы с подкачкой страниц, генерирующих дубликаты.Мы думали, что это происходит только с запросами HQL, но один из наших клиентов сообщил, что видел его там, где запрос является критерием запроса.
Пока что мы видели его только на стороне отчетности - там, где мы склонны собиратьбиты информации от различных «связанных» сущностей и использование AliasToBeanTransformer для помещения его в DTO (DataTransferObject):
.SetResultTransformer (новый AliasToBeanResultTransformer (typeof (OurDTO)));
We 'Мы не знакомы с nHibernate, но мы, конечно, не знаем о многих его тонкостях, и в результате мы не знали о
новом NHibernate.Transform.DistinctRootEntityResultTransformer ()
которые потенциально могут устранить наши дубликаты, но я изо всех сил пытаюсь понять, как мы могли бы сделать это, когда это не отображаемая сущность, то есть DTO.
Мы попытались создать собственный диалект, который, кажется, послужилнекоторые люди достаточно хорошо, чтобы быть уверенными в последовательном поведении.
Я понимаю, что нет такой вещи, как сереброbullet и context всегда важны, но кто-нибудь сумел придумать решение для этого?
Код, который мы используем для обработки параметров сортировки страниц, выглядит следующим образом:
query.SetMaxResults(50);
for (int i = 0; ; ++i)
{
query.SetFirstResult(i * 50);
IList results = query.List();
cumulativeResults.AddRange(results);
OnRecordsLoaded(results.Count);
if (results.Count < 50)
{ break; }
Большое спасибо за любой вклад по этому вопросу.С уважением, Колин