【发布时间】:2015-08-03 08:52:36
【问题描述】:
我有一个包含“名称”和“计数”列的小部件表
“计数”字段包含每个小部件将显示的帖子计数:
姓名 |数数 --------------------- 近期新闻 | 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();
在每个 Widget 部分视图中:
foreach(var p in Model.PostsInRecentNews)
{
<li>@Html.ActionLink(p.Post.Title,"Index","Home")</li>
}
我的问题:如何为每个小部件动态设置 Take(count) 的 int 值,而不是 Take(6) 、 Take(5) 、 Take(10) ...
我想我需要使用 TakeWhile() 而不是 Take()
感谢您的帮助...
【问题讨论】: