У меня возникла проблема с дублированием сообщения в блоге, когда я запустил инструкцию linq ниже.NHibernate Linq - Duplicate Records
Проблема в том, что сообщение в блоге может иметь один и тот же тег более одного раза, и это вызывает проблему. Я знаю, когда вы используете критерии, вы можете сделать следующий crititeria.SetResultTransformer (новый DistinctRootEntityResultTransformer());
Как я могу сделать то же самое с linq?
List<BlogPost> result = (from blogPost in _session.Linq<BlogPost>()
from tags in blogPost.Tags
where tags.Tag == tag && blogPost.IsPublished
&& blogPost.Slug != slugToExclude
orderby blogPost.DateCreated descending
select blogPost).Distinct()
.Skip(recordsToSkip).Take(pageSize).ToList();
Хм ... Проблема в том, что NH не переводит выражение .Distinct() правильно? Выглядит как ошибка в переводчике –
Это не ошибка, потому что DateCreated будет уникальной для каждой строки? Я предлагаю вам использовать эквивалент MAX (DateCreated), иначе вам может понадобиться разделить или реорганизовать каким-либо другим способом для выполнения первичного фильтра. – CarneyCode