I think you are using Skip incorrectly. It should be before the Take.
Skip skips a number of records, so for your first page, pass in 0, else pass in the (page number - 1) * records per page.
I usually do something like this:
int Page = 1;
int RecordsPerPage = 10;
var q = yourQuery.Skip((Page - 1) * RecordsPerPage).Take(RecordsPerPage);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…