我正在使用 LINQ 并将此命令链接到模型中。
model.LatestPosts = db.TPGForums.SelectMany(m => m.TPGForumTopics)
.SelectMany(m => m.TPGForumPosts)
.SelectMany(m => m.TPGForumThreads)
.OrderByDescending(m => m.dateCreated)
.Take(5);
然而,这只会让我回到线程。 我需要TPGForumPosts
和TPGForumThreads
中的最后 5 个最新项目。 我将如何返回最近的 5 个帖子/线程,而不仅仅是最近的线程?
嵌套SelectMany
调用,而不是链接它们:
var query = db.TPGForums
.SelectMany(forum => forum.TPGForumTopics
.SelectMany(topic => topic.TPGForumPosts
.SelectMany(post => post.TPGForumThreads
.Select(thread => new { forum, topic, post, thread }))))
.OrderByDescending(m => m.thread.dateCreated)
.Take(5);