我有一个包含“名称”和“计数”列的小部件表
“计数”字段包含每个小部件将显示的帖子数:
姓名 | 数数 --------------------- 近期新闻 | 6 特别新闻 | 5 新闻图库 | 10
与 Widgets Table 和 Posts Table 关联的第二个表:
邮政编码 | 小部件ID ------------------ 100 | 6 101 | 5 102 | 10
为了获得更高的性能,我只需通过此查询为每个小部件获取最后需要的帖子:
var postInWidgets = db.PostWidgets
.GroupBy(pw => pw.WidgetID)
.SelectMany(g => g.OrderByDescending(p => p.Post.DateCreated).Take(500))
.ToList();
然后在每个小部件中获取帖子:
var postsInGalery = postInWidgets
.Where(wid => wid.WidgetID == 1).Take(6)
.ToList();
var postsInSpecialNews=postInWidgets
.Where(wid => wid.WidgetID == 2).Take(5)
.ToList();
var postsInRecentNews=postInWidgets
.Where(wid => wid.WidgetID == 5).Take(10)
.ToList();
并在每个小部件部分视图中:
foreach(var p in Model.PostsInRecentNews)
{
<li>@Html.ActionLink(p.Post.Title,"Index","Home")</li>
}
我的问题:如何为每个小部件而不是 Take(6) 、 Take(5) 、 Take(10) 动态设置 Take(count) 的 int 值...
我想我需要使用 TakeWhile() 而不是 Take()
感谢您的任何帮助...