Лучший способ подключить gridview к источнику данных - PullRequest
0 голосов
/ 30 октября 2009

Мой DAL создан с использованием Linq, и все в порядке. Однако на одной странице я должен отобразить таблицу (gridview), которая извлекает данные из таблицы базы данных SQL Server. Тем не менее, я слышал много предупреждений об отказе от использования любого из встроенных элементов управления (ObjectDataSource и SQLDataSource). Есть ли в этом правда относительно масштабируемости / эффективности? Ранее я публиковал аналогичную проблему, но в этом случае у меня есть прямой доступ к серверу. Как лучше всего связать данные с gridview? Я не могу кэшировать данные, так как они предназначены для отдельных лиц, и я бы предпочел не хранить их в сеансах, поскольку может быть вызвано от 100 до 200 пользовательских объектов. Я не особо увлекался SQL, но, прочитав немного, я уверен, что смогу создать свой собственный серверный пейджинг / фильтрацию / сортировку. Будет ли эффективно, если я создаю хранимую процедуру для каждой из этих функций и вызываю их из источника данных объекта, или мне следует вызывать SP с помощью Linq to SQL (в моем DAL), а затем отображать эту информацию непосредственно в gridview?

Спасибо за любой совет

1 Ответ

1 голос
/ 30 октября 2009

Нет ничего плохого в использовании вида сетки или источника данных пользовательского объекта, если это только для нескольких сотен записей. Масштабируемость является проблемой для тысяч записей. Самый быстрый доступ возможен через DataReader, заполняющий Datatable. Привязка gridviews к Datatable - это всегда хорошая идея для большого количества записей, так как привязка быстрая и сортировка также.

Поэтому я написал библиотеку под названием modelshredder , которая может преобразовывать любую коллекцию объектов IEnumerable в DataTable. Для выполнения своей работы он использует динамически генерируемый код, поэтому он достаточно быстрый для тысяч записей. Вы можете использовать обычный linq-to-sql для написания и выполнения вашего запроса, предпочтительно проецировать в анонимный тип и вызывать .ToDataTable () для результата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...