Skip by Id on large list This is in ASP.NET MVC, but that shouldn't make a difference. I have a large number of rows in my database for Songs.

var songIndex = Context.Songs.ToList().FindIndex(x =&gt; x.Id == 500);
var songs = Context.Songs.OrderBy(x =&gt; x.Id).Skip(songIndex).Take(10);


However, the ToList() and OrderBy seem pretty heavy just to take the next next 10 songs after the element with Id of 500.

Is there a better way to do this so I don't have to modify the entire list?
How about using a simple Where clause?

var songs = Context.Songs
    .OrderBy(x =&gt; x.Id)
    .Where(x =&gt; x.Id &gt; 500)
    .Take(10);