Общие сведения о LINQ to DataSet

является DataSet одним из более широко используемых компонентов ADO.NET. Это ключевой элемент модели отключенного программирования, на основе ADO.NET и позволяющий явно кэшировать данные из разных источников данных. Для уровня представления DataSet тесно интегрирован с элементами управления графическим интерфейсом привязки данных. Для среднего уровня он предоставляет кэш, который защищает реляционную форму данных и включает в себя быстрые простые службы запросов и навигации по иерархии. Распространенный метод, используемый для уменьшения количества запросов в базе данных, заключается в DataSet использовании для кэширования на среднем уровне. Например, рассмотрим управляемое данными веб-приложение ASP.NET. Обычно значительная часть данных приложения изменяется нечасто и остается неизменной во время сеанса пользователя. Эти данные могут сохраняться в памяти веб-сервера, что сократит число запросов к базе данных и ускорит взаимодействие с пользователями. Другой полезный аспект заключается в DataSet том, что он позволяет приложению переносить подмножества данных из одного или нескольких источников данных в пространство приложения. Затем приложение может работать с данными в памяти как с реляционными данными.

Объект DataSet имеет ограниченные возможности запросов. Метод Select можно использовать для фильтрации и сортировки, а методы GetChildRows и GetParentRow - для навигации по иерархии. Для более сложных операций необходимо писать пользовательские запросы. Это может снизить производительность приложений и создать трудности при их сопровождении.

LINQ to DataSet упрощает и ускоряет выполнение запросов к данным, кэшируемым в объекте DataSet . Эти запросы выражены на языке программирования, а не в виде строковых литералов, внедренных в код приложения. Это означает, что разработчикам не придется изучать отдельный язык запросов. Кроме того, LINQ to DataSet позволяет разработчикам Visual Studio работать эффективнее, так как интегрированная среда разработки Visual Studio обеспечивает проверку синтаксиса во время компиляции, статическую типизацию и поддержку IntelliSense для LINQ. LINQ to DataSet также можно использовать для запроса данных, объединенных из одного или нескольких источников данных. Это делает возможными много сценариев, требующих гибкости в представлении и управлении данными. В частности, этот метод обработки требуется для универсальных приложений отчетности, анализа и бизнес-аналитики.

Запросы к наборам данных с помощью LINQ to DataSet

Прежде чем приступить к запросу DataSet объекта с помощью LINQ to DataSet, необходимо заполнить DataSet. Существует несколько способов загрузки данных в DataSet, например с помощью DataAdapter класса или LINQ to SQL. После загрузки данных в DataSet объект можно начать запрашивать их. Формулировка запросов с помощью LINQ to DataSet аналогична использованию запроса Language-Integrated (LINQ) к другим источникам данных с поддержкой LINQ. Запросы LINQ можно выполнять к отдельным таблицам DataSet в или к нескольким таблицам с помощью Join стандартных операторов запросов и GroupJoin .

Запросы LINQ поддерживаются как к типизированным, так и к нетипизированным DataSet объектам. Если схема DataSet известна во время разработки приложения, рекомендуется использование типизированного DataSet. В типизированном DataSet в таблицах и строках есть типизированные члены для каждого столбца, которые делают запросы проще и более читаемыми.

В дополнение к стандартным операторам запросов, реализованным в System.Core.dll, LINQ to DataSet добавляет несколько DataSetрасширенийDataRow, которые упрощают выполнение запросов к набору объектов. Эти специфичные для DataSet расширения включают в себя операторы для сравнения последовательностей строк, а также методы, обеспечивающие доступ к значениям столбцов DataRow.

Многоуровневые приложения и LINQ to DataSet

Многоуровневые приложения обработки данных - это приложения, ориентированные на данные, разделенные на несколько логических уровней. Типичное многоуровневое приложение включает в себя уровень представления, средний уровень и уровень данных. Разделение компонентов приложения на уровни повышает удобство поддержки и масштабирования приложения. Дополнительные сведения о N-уровневом приложении для работы с данными см. в статье Работа с наборами данных в n-уровневых приложениях.

В многоуровневых приложениях объект DataSet часто используется на среднем уровне, чтобы кэшировать данные для веб-приложений. Функция LINQ to DataSet запросов реализуется с помощью методов расширения и расширяет существующую ADO.NET 2.0 DataSet.

См. также раздел