У меня есть следующие настройки.
· блоги, ·
BlogToCategory
Категория
В одном сообщении блога может быть много категорий, а категория может быть во многих сообщениях блога. (Отсюда и промежуточная таблица.
Как мне получить список всех постов в блоге в одной категории.
Я пробовал это, но, кажется, не могу понять это правильно (я получаю IQueryable -> IEnumerable ошибка приведения)
public IEnumerable<BlogPost> FetchAllBlogs(int? CatId)
{
return from c in CategoryLink.All()
where c.CategoryID == CatId
select c.BlogPost;
}
Хорошо, как показано ниже, я попробовал следующее.
return from blogToCategories in subtext_Link.All()
join blogPosts in subtext_Content.All() on blogToCategories.BlogId equals blogPosts.BlogId
where blogToCategories.CategoryID == CatId
orderby (blogPosts.DateAdded) descending
select blogPosts;
Теперь это странно. Кажется, что соединение неверно, поскольку всякий раз, когда в таблице ссылок (таблица ссылок на блог) есть данные, он возвращает ВСЕ блоги.
Также попробовал следующее.
BlogList = new TransformDB().Select
.From<subtext_Content>()
.InnerJoin<subtext_Link>(subtext_LinksTable.BlogIdColumn, subtext_ContentTable.BlogIdColumn)
.Where(subtext_LinksTable.CategoryIDColumn).IsEqualTo(CatId)
.ExecuteTypedList<subtext_Content>();
Сгенерированный SQL
SELECT [dbo]. [Subtext_Links]. [LinkID],
[DBO]. [Subtext_Links]. [Название],
[DBO]. [Subtext_Links]. [URL],
[DBO]. [Subtext_Links]. [RSS],
[DBO]. [Subtext_Links]. [Активный],
[DBO]. [Subtext_Links]. [CategoryID],
[DBO]. [Subtext_Links]. [BlogId],
[DBO]. [Subtext_Links]. [Сообщения дан],
[DBO]. [Subtext_Links]. [NewWindow],
[DBO]. [Subtext_Links]. [Rel],
\ Г \ п [DBO]. [Subtext_Content]. [ID],
[DBO]. [Subtext_Content]. [Название],
[DBO]. [Subtext_Content]. [DateAdded],
[DBO]. [Subtext_Content]. [PostType],
[DBO]. [Subtext_Content]. [Автор],
[DBO]. [Subtext_Content]. [Email]
[DBO]. [Subtext_Content]. [BlogId],
[DBO]. [Subtext_Content]. [Описание],
[DBO]. [Subtext_Content]. [DateUpdated],
[DBO]. [Subtext_Content]. [Текст],
[DBO]. [Subtext_Content]. [FeedBackCount],
[DBO]. [Subtext_Content]. [PostConfig],
[DBO]. [Subtext_Content]. [EntryName],
[DBO]. [Subtext_Content]. [DateSyndicated] \ г \ п
ОТ [dbo]. [Subtext_Links] \ r \ n ВНУТРЕННИЙ
ПРИСОЕДИНИТЬСЯ [dbo]. [Subtext_Content] ON
[dbo]. [subtext_Links]. [BlogId] =
[DBO]. [Subtext_Content]. [BlogId] \ г \ п
ГДЕ
[dbo]. [subtext_Links]. [CategoryID] =
@ 0"