NHibernate Linq - повторяющиеся записи - PullRequest
6 голосов
/ 12 марта 2010

У меня проблема с повторяющимся сообщением в блоге, когда я запускаю оператор linq ниже.

Проблема в том, что сообщение в блоге может иметь один и тот же тег несколько раз, и это является причиной проблемы. Я знаю, когда вы используете критерии, вы можете сделать следующие критерии. SetResultTransformer (new 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();

1 Ответ

2 голосов
/ 22 февраля 2011

1001 * попробовать *

List<BlogPost> result = (from blogPost in _session.Linq<BlogPost>()
                         where blogPost.Tags.Any(t => t == tag) 
                            && blogPost.IsPublished 
                            && blogPost.Slug != slugToExclude
                         orderby blogPost.DateCreated descending
                         select blogPost).Distinct()
                        .Skip(recordsToSkip).Take(pageSize).ToList();

Старый провайдер NHibernate LINQ все равно не поддерживается. Попробуйте новый встроенный в NHibernate 3.0 (чтобы использовать его, вы набираете session.Query() вместо session.Linq().

...