我使用Entity框架(代码冷杉模型)
我有表Posts(postID | Title | ...)
和表Comments(commentID | Comment | postID | userID | CommentDate | ...)
我想要一个基于评论中userID标准的帖子列表。
var listOfPosts = (from p in db.Posts
join coment in db.Comments
on p.postID equals coment.postID
where coment.userID == "Some value"
orderby coment.CommentDate descending
select p).ToList();
return View("ReportList", listOfReports.ToPagedList(pageNumber, pageSize));
我也使用PagedList来分页。
但我希望结果是PostID分组,所以我修改了代码如下
var listOfPosts = (from p in db.Posts
join coment in db.Comments
on p.postID equals coment.postID
where coment.userID == "Some value"
orderby coment.CommentDate descending
group p by p.postID into newP
select newP).ToList();
这里的问题是,第二个查询的结果返回{Page 1}}和PagedList的List<IGrouping<int, Posts>>
方法仅适用于ToPagedList
如何根据条件和评论顺序更改查询以返回不同的帖子列表? 您可以使用lambda表达式或查询语法。
答案 0 :(得分:1)
您可以尝试在外部查询中使用子查询和distinct,如下所示:
var listOfPosts = (from b in ((from p in db.Posts
join coment in db.Comments on p.postID equals coment.postID
where coment.userID == "Some value"
orderby coment.ComentDate descending
select p).ToList())
select b).Distinct().ToList();