Групповой в относительном - PullRequest
0 голосов
/ 04 апреля 2010

Я создаю некоторые функции тегов для форума, используя linq2sql, и у меня есть две таблицы

[Tag]

  • TagId
  • TagName

[ForumTagRelation]

  • TagId
  • ForumId

Я хотел бы получить, как и SO, самые популярные теги.

Я пытался сделать это:

 List<Tag> popularTags = db.Tags.Select(x => x.ForumTagRelations.GroupBy(y => y.TagId).OrderByDescending(z => z.Count())).Take(count).ToList();

Но это просто возвращает следующую ошибку:

Error   1   Cannot implicitly convert type 'System.Collections.Generic.List<System.Linq.IOrderedEnumerable<System.Linq.IGrouping<System.Guid?,SampleWebsite.ForumTagRelation>>>' to 'System.Collections.Generic.IEnumerable<SampleWebsite.Tag>'. An explicit conversion exists (are you missing a cast?)    

Вопрос в том, как мне легко вернуть список тегов с наибольшим количеством в таблице ForumTagRelation?

1 Ответ

1 голос
/ 04 апреля 2010

Это должно быть так:

List<Tag> popularTags = (db.Tags.Where(t => db.ForumTagRelations.GroupBy(gbftr => gbftr.TagID).OrderByDescending(obftr => obftr.Count()).Take(count).Any(ftr => ftr.Key == t.TagID)).Take(count)).ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...