I currently have many linq expressions nested within foreach loops ... kind of defeating the point of using linq!
What I'm trying to achieve is a simple blog model (blog posts which have multiple tags and are associated with multiple categories... that's all).
I'm looking for a way to condense all my linq expressions into a single expression, and the way I'm attempting to do it at the moment isn't returning desired results. Here's a basic representation of what I'm trying at the moment:
var blogs =
from blog in db.BlogPosts
join categories in db.BlogCategories
on blog.Fk_Category_Id equals category.Id
// Using a junction table because blogs can have multiple tags,
// and tags can be shared across different blogs.
join juncTags in db.Junc_BlogTags
on blog.Id equals juncTags.Fk_BlogPost_Id
join tags in db.Tags
on juncTags.FK_Tag_Id equals tags.Id
select new
{
blog,
categories,
tags
};
foreach(var blog in blogs)
{
blog.blog // Correct, can obtain information of current blog...
blog.categories // Correct, shows the information of Blog's category
blog.tags // Wrong, only refers to the first tag - next itteration will
// show the same blog with the next tag .. not what I want.
}
I'm sure that its something simple that I'm missing here, but can't figure it out and thought that Stack Overflow would be able to answer this easily.
Thanks in advance!