这是我的代码,
rptAnnouncement.DataSource = DbContext.Announcements
.Where(n => n.Expire_Date.Value.Date >= DateTime.Now.Date)
.ToList();
我从lambda中获取数据库中的公告数据,并将此数据绑定到ASP.NET转发器(rptAnnouncement
)。
但是这个查询会返回所有数据,我只想获得前5个(前5个)记录,比如MS SQL Server' select top 5 * from database
。
答案 0 :(得分:49)
您可以使用OrderBy()
对元素进行排序,然后Take()
使用前5个。
rptAnnouncement.DataSource = DbContext.Announcements
.Where(n => n.Expire_Date.Value.Date >= DateTime.Now.Date)
.OrderBy(n => n.Expire_Date.Value.Date)
.Take(5);
备注强>
OrderByDescending()
ToList()
,然后拨打Take()
即可获得所有项目,然后排在前5名,而不是只获得前5名。答案 1 :(得分:5)
如果您只想要前5名,那么您可以使用以下内容。
rptAnnouncement.DataSource = DbContext.Announcements.Where(n => n.Expire_Date.Value.Date >= DateTime.Now.Date).Take(5).ToList();
此处有更多详情
答案 2 :(得分:2)
只需在Take(n)
LINQ
即可
rptAnnouncement.DataSource = DbContext.Announcements
.Where(n => n.Expire_Date.Value.Date >= DateTime.Now.Date)
.Take(5).ToList();