Вы можете использовать методы .Skip()
и .Take()
в вашем наборе результатов.Пример:
var q = (from Comments in db.tblBlogComments where Comments.blogID == this.ID orderby Comments.date descending select new {
Comments.userID, Comments.comment, Comments.date
});
И затем используйте:
int pageSize = 10;
int page = 3;
var currentPage = q.Skip((currentPage - 1) * pageSize).Take(pageSize);
И затем
foreach(var item in currentPage)
{
...
}
Поскольку Linq использует отложенное выполнение, будет создан фактический запроси выполняется во время цикла foreach .Таким образом, SQL-запрос будет возвращать только записи для текущей страницы.
Редактировать: Подробнее об этом *