I'm creating page with pagination, and got method that takes argument page
and numberOfElementsPerPage
.
In this method im using Linq to Entities to load elements for page:
public List<Item> GetElements(int page, int numberOfElementsPerPage)
{
return DataContext.Items.OrderBy(x => x.Id).Skip((page-1)*numberOfElementsPerPage).Take(numberOfElementsPerPage);
}
What I want to ask, how does this Skip
/Take
works? Does it take first all records from database, order and then Skip
/Take
? If yes I think this is pretty bad solution if the database got 100000 records for example or even more. So whats the best solution?