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?