我不知道如何将帖子返回到我的视图,其中的标签与传递给控制器操作的标签相同。
我认为有一些聪明而简单的方法可以做到这一点,但我对LINQ和SQL很新。
代码
// id = tag name, not it's id
public ActionResult Tag(string id)
{
// I get all the PostTags where PostTags.Tag.Name = id
var postTags = _db.PostTags.Where(x => x.Tag.Name == id);
// And what I do now?
}
答案 0 :(得分:3)
使用查询语法而不是扩展方法,使用关系数据中的联接更容易掌握。使用扩展方法(如.Join(...)等)可以实现以下功能,但这更接近您可能已习惯的SQL。
var postTags = from t in _db.Tags
join pt in _db.PostTags on t.ID equals pt.TagID
join p in _db.Posts on pt.PostID equals p.ID
where t.Name == id
select p;
答案 1 :(得分:0)
选择它们你可以做类似的事情......
var posts = _db.Posts.Where(post => post.PostTags.Any(postTag => postTag.Tag.Name == id));
这将只选择所有Post
s,其中任何相关的PostTag
都有Tag
且名称已通过。