Каков наилучший шаблон для разбивки на страницы с помощью LINQ to SQL ?
У меня есть следующий сценарий:
Предположим, я хочу найти предметов в таблице по описание . Я легко могу сделать:
public IQueryable<Item> FindItemsByDescription(string description)
{
return from item in _dc.Items
where item.Description.Contains(description);
}
Теперь, как лучше всего разбить на страницы этот набор результатов?
- Должен ли я выполнить запрос count , прежде чем делать это, чтобы узнать размер набора результатов, а затем ограничить этот запрос в соответствии с тем, что я хочу? Я чувствую, что это путь.
- Должен ли я выполнить полный запрос, взять счетчик из размера массива и вернуть из этого массива только разбитое на страницы подмножество? Я чувствую, что это будет огромной тратой времени, если набор результатов будет достаточно большим ... Или LINQ to SQL делает здесь какое-то волшебство?
Существует ли LINQ to SQL общий шаблон для выполнения этой операции?
РЕДАКТИРОВАТЬ: Я должен уточнить одну маленькую вещь. Я знаю методы Take и Skip. Но, прежде чем использовать Take и Skip , как мне получить общее количество результатов, которые запрос получит?