Получить первые 5 значений с помощью лямбда-запроса
Вот мой код,
rptAnnouncement.DataSource = DbContext.Announcements
.Where(n => n.Expire_Date.Value.Date >= DateTime.Now.Date)
.ToList();
Я беру данные объявлений из базы данных с помощью лямбда и привязываю эти данные к ретранслятору ASP.NET(rptAnnouncement
).
Но этот запрос возвращает все данные, я просто хочу получить первые 5 (первые 5) записей, таких как MS SQL Server select top 5 * from database
.
Ответы
Ответ 1
Вы можете использовать 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()
получит все предметы, а затем возьмет верхняя пятерка, а не только верхняя пятерка.
Ответ 2
Если вы хотите только Top 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
Ответ 3
Просто используйте Take(n)
в LINQ
rptAnnouncement.DataSource = DbContext.Announcements
.Where(n => n.Expire_Date.Value.Date >= DateTime.Now.Date)
.Take(5).ToList();
Ответ 4
введите описание изображения здесь
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>alert();</script>