LINQ и пейджинг с DataTable - не можете заставить Пропустить работать? - PullRequest
4 голосов
/ 16 июня 2010

Хорошо, так что это может быть глупый вопрос, но я не могу понять это.Я думал, что попробую LINQ против DataTable.Мой запрос работает, и теперь я пытаюсь реализовать простую подкачку страниц.

DataTable dataTable = null;

dataTable = GetAllDataTables();

var query = from r in dataTable.AsEnumerable()
            orderby r.Field<string>(Constants.fileName)
            select r;

query.Skip(WPP_PAGE_SIZE * pageIndex).Take(WPP_PAGE_SIZE);

Моя проблема заключается в том, что при запросе я получаю сообщение об ошибке. Skip (...).

Ошибка 1 «System.Data.OrderedEnumerableRowCollection» не содержит определения для «Пропустить», и отсутствует метод расширения «Пропустить», принимающий первый аргумент типа «System.Data.OrderedEnumerableRowCollection» (вы пропускаетедиректива или ссылка на сборку?)

Ссылки, которые у меня есть:

  • Microsoft.SharePoint
  • Система
  • System.Core
  • System.Data
  • System.Data.DataSetExtensions
  • System.Web
  • System.Xml

Чего мне не хватает?

Ответы [ 2 ]

7 голосов
/ 16 июня 2010

Вам нужно using System.Linq; вверху вашего файла.

Вторая проблема заключается в том, что вам нужно присвоить результат Skip и Take чему-либо, иначе результат просто отбрасывается:

var query2 = query.Skip(WPP_PAGE_SIZE * pageIndex).Take(WPP_PAGE_SIZE);
2 голосов
/ 16 июня 2010
using System.Linq?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...