我在ASP.NET MVC中编写简单的论坛。
在类别视图中,我想显示最新的主题。
我的代码按线程添加日期排序:
model.ForumThreads = db.ForumThreads
.Where(t => t.ForumThreadCategoryId == id)
.OrderByDescending(t => t.AddDate)
.ToPagedList(page, 10);
ForumPost模型具有ForumThread模型的外键。
问题是: 如何按最后一篇文章对线程进行排序,但如果没有帖子则按线程添加日期排序。
答案 0 :(得分:5)
使用三元if
运算符(如果?
然后:
运算符:
model.ForumThreads = db.ForumThreads
.Where(t => t.ForumThreadCategoryId == id)
.OrderByDescending(t => t.ForumPosts.Any() //if
? t.ForumPosts.Max(x=>x.AddDate) //then by post add date
: t.AddDate) //else like you already do
.ToPagedList(page, 10);