使用lambda查询获取前5个值

zey*_*zey 19 c# linq sql-server asp.net

这是我的代码,

rptAnnouncement.DataSource = DbContext.Announcements
    .Where(n => n.Expire_Date.Value.Date >= DateTime.Now.Date)
    .ToList();  
Run Code Online (Sandbox Code Playgroud)

我从lambda中获取数据库中的公告数据,并将此数据绑定到ASP.NET repeater(rptAnnouncement).

但是这个查询返回所有数据,我只想获得像MS SQL Server这样的前五(前5)个记录select top 5 * from database.

Dan*_*mms 51

您可以使用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);
Run Code Online (Sandbox Code Playgroud)

笔记

  • `OrderByDescending()` (2认同)

ash*_*ina 5

如果您只想要前五名,那么您可以使用以下内容.

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

更多细节在这里

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