您好我有2个表BlogPost和BlogComments
我希望获得所有状态为“已发布”的BlogPost。 并获取状态为“已发布”的每个帖子的所有BlogComments。
我正在使用这样的东西来获取博客帖子:
var BlogPosts = (from p in db.BlogPosts where p.State == State.Published select p).ToArray();
但由于与BlogComments的关系,它可以自动拥有所有BlogComments(包括已发布和未发布的)。
我如何才能获得每个博文(即已批准的博文)的“已发布”评论
感谢
答案 0 :(得分:4)
尝试选择新的BlogPostViewModel,类似于BlogPost,但使用IEnumerable<BlogComment>
,只需选择博客帖子数据和已发布评论的集合。
select new BlogPostViewModel {
Title = p.Title,
Body = p.Body,
Comments = p.Comments.Where( c => c.Published );
});
BlogPostViewModel
的位置:
public class BlogPostViewModel
{
public string Title { get; set; }
public string Body { get; set; }
public IEnumerable<BlogComment> Comments { get; set; }
}
答案 1 :(得分:0)
var BlogPosts = from p in db.BlogPosts where p.State == State.Published select new {
Post = p,
Comments = (from c in db.BlogComments where c.State == State.Published && c.Post = p select c)
};
答案 2 :(得分:0)
var publishedComments = db.BlobPosts.Where(p => p.State == State.Published)
.SelectMany(p => p.Comments)
.Where(c => c.State == State.Published);
很抱歉没有使用查询语法。希望这会让你继续前进。