Общие сведения о 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 аналогична использованию языковых интегрированных запросов (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.