21

这是我的代码,

rptAnnouncement.DataSource = DbContext.Announcements
    .Where(n => n.Expire_Date.Value.Date >= DateTime.Now.Date)
    .ToList();  

我使用 lambda 从数据库中获取公告数据,并将这些数据绑定到 ASP.NET repeater( rptAnnouncement)。

但是此查询返回所有数据,我只想获取前 5 条(前 5 条)记录,例如 MS SQL Server 的select top 5 * from database.

4

3 回答 3

55

您可以使用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);

笔记

于 2013-03-30T07:55:13.570 回答
5

如果您只想要前 5 名,则可以使用以下 .

rptAnnouncement.DataSource = DbContext.Announcements.Where(n => n.Expire_Date.Value.Date >= DateTime.Now.Date).Take(5).ToList();

更多细节在这里

http://msdn.microsoft.com/en-us/library/bb503062.aspx

于 2013-03-30T07:54:59.130 回答
2

只需Take(n)LINQ

rptAnnouncement.DataSource = DbContext.Announcements
                                      .Where(n => n.Expire_Date.Value.Date >= DateTime.Now.Date)
                                      .Take(5).ToList();
于 2013-03-30T07:56:30.180 回答