Я пишу запрос linq для выбора блога,
from data in dataContext.Blog_BlogPosts
join tagsData in dataContext.Blog_TagToPostConnections on data.BlogPostID equals tagsData.BlogPostID
where data.Slug == "asp-programmering"
select new BlogPost
{
Title = data.Title,
Slug = data.Slug,
Author = data.Author,
Text = data.Text,
Tags = (from tags in dataContext.Blog_Tags where tags.TagID == tagsData.TagID select new Tag { TagID = tags.TagID, TagName = tags.Tag }).ToList()
};
Класс blogpost выглядит следующим образом (используется для его проверки)
public class BlogPost
{
public string Slug { get; set; }
public string Title { get; set; }
public string Text { get; set; }
public string Author { get; set; }
public DateTime Published { get; set; }
public List<Tag> Tags { get; set; }
}
В блоге, который я тестирую, к нему прикреплены 3 тега. Структура таблицы:
(таблица) BlogPost -> (таблица) BlogPostTags <- (таблица) Теги </p>
Таким образом, таблица BlogPostTags содержит только 2 поля: BlogPostID и TagID.
Когда я запускаю запрос выше, я получаю 3 результата назад. Один и тот же пост 3 раза, но с 1 тегом в каждом. Должен вернуться 1 пост с 3 тегами. Проблема заключается в запросе тегов выше.