Как сделать пагинацию в Entity Framework Core и API

206
06 января 2019, 12:00

Есть поисковой запрос,который выводит значения из базы данных. Проблема в том,что вхождений может быть огромное количество и поэтому хочу сделать пагинацию. Вопрос в том,как это реализовать, если не знаешь сколько тебе выведет вхождений.Пока имею только такой поверхностный код.

[HttpGet]
[Route("/search/{searchform}")]
public ActionResult Search(string searchform)
{
    var search = _context.SlideDb.Where(p => p.TextSlide.Contains(searchform));
    var dataPag = search.Take(30);
    var dataPag2 = search.Skip(30).Take(30);
    return Ok(dataPag);  
}
Answer 1

Ну так обычно и делается и в самоделках и пакетах типа PagedList (поковыряйте их исходники: они оба есть на гитхабе - и старый и core'овский), почитайте например на метаните.

И претензии в общем-то одинаковые - что работает это не очень эффективно по скорости, поищите статьи на хабре, (например, вот тут рекомендуют использовать лямбды) там разбирались вопросы почему Skip+Take проигрывает raw sql.

Ну и до кучи, не знаю, это у вас заготовка и опущены важные подробности, но вы не используете .AsNoTracking() - и выключив отслеживание изменений вы можете получить прирост до 10% (цифра из очень старого отчёта майкрософт по EF5, новых не видел).

READ ALSO
Значение из текста

Значение из текста

Как можно средствами C# получить определенную часть строки?

165
запрет клик мышкой по ListBox C# (windows form)

запрет клик мышкой по ListBox C# (windows form)

У меня есть кнопки который переключают Items, но у меня не получается запретить клик мышкой по ListBox, обшарил гугл, не нашёл(Либо я слепой)Помогите...

186
LiqPay обрывает сессию. ASP.NET Core

LiqPay обрывает сессию. ASP.NET Core

Проблема вот в чемЯ делаю успешно оплату по этому сервису у себя на сайте где после оплаты автоматический редирект на метод в котором в таблице...

165
Ограничение доступа к сайту

Ограничение доступа к сайту

Можно ли сделать сайт выложенный на хостинг доступным только с одного, двух ip адресов? Знаю что с помощьюhtaccess можно скрыть из доступа некоторые...

204