Архитектура ADO.NET

Обработка данных традиционно зависит в первую очередь от модели на основе подключения, двухуровневой. Поскольку обработка данных все чаще использует многоуровневые архитектуры, программисты переключаются на отключенный подход, чтобы обеспечить лучшую масштабируемость для своих приложений.

компоненты ADO.NET

Два основных компонента ADO.NET для доступа к данным и управления ими являются поставщиками данных .NET Framework и DataSet.

Поставщики данных .NET Framework

Поставщики данных .NET Framework — это компоненты, которые были явно разработаны для обработки данных и быстрого доступа только для чтения к данным. Объект Connection обеспечивает подключение к источнику данных. Объект Command позволяет получать доступ к командам базы данных для возврата данных, изменения данных, выполнения хранимых процедур и отправки или получения сведений о параметрах. Высокопроизводительный поток данных предоставляется DataReader из источника данных. Наконец, DataAdapter предоставляет мост между DataSet объектом и источником данных. Объекты DataAdapter используются Command для выполнения команд SQL на источнике данных для загрузки DataSet с данными и согласования изменений, внесенных в данные в DataSet обратно к источнику данных. Дополнительные сведения см. в разделе поставщиков данных .NET Framework и получение и изменение данных в ADO.NET.

Набор данных

ADO.NET DataSet явно предназначен для доступа к данным независимо от любого источника данных. В результате его можно использовать с несколькими и различными источниками данных, использовать с XML-данными или использовать для управления локальными данными в приложении. DataSet содержит коллекцию одного или нескольких объектов DataTable, которые состоят из строк и столбцов данных, а также информацию о первичном ключе, внешнем ключе, ограничениях и реляционных связях данных в объектах DataTable. Дополнительные сведения см. в разделе DataSets, DataTables и DataViews.

На следующей схеме показана связь между поставщиком данных .NET Framework и DataSet.

ADO.Net графика ado_1_bpuedev11
архитектура ADO.NET

Выбор DataReader или DataSet

Когда вы решаете, следует ли вашему приложению использовать DataReader (см. раздел «Извлечение данных с помощью DataReader») или DataSet (см. раздел «Наборы данных», «DataTables» и «DataViews»), рассмотрите тип функциональности, который требуется вашему приложению. Используйте DataSet, чтобы сделать следующее:

  • Кэшируйте данные локально в приложении, чтобы управлять им. Если вам нужно только прочитать результаты запроса, DataReader является лучшим выбором.

  • Удаленные данные между уровнями или из XML-веб-службы.

  • Динамически взаимодействуйте с данными, такими как привязка к элементу управления Windows Forms или объединение и связывание данных из нескольких источников.

  • Выполняйте обширную обработку данных, не требуя открытого подключения к источнику данных, что освобождает подключение, используемое другими клиентами.

Если вам не требуются функциональные возможности, предоставляемые DataSet, вы можете повысить производительность своего приложения, используя DataReader для возврата данных только в прямом и только для чтения режиме. DataAdapter Хотя DataReader используется для заполнения содержимого DataSet (см. Пополнение набора данных из DataAdapter), с помощью DataReader, можно повысить производительность, поскольку вы сэкономите память, которая была бы израсходована DataSet, и избежите обработки, необходимой для создания и заполнения содержимого DataSet.

LINQ to DataSet

LINQ to DataSet предоставляет возможности запросов и проверку типа во время компиляции данных, кэшированных в объекте DataSet. Он позволяет создавать запросы на одном из языков разработки .NET Framework, таких как C# или Visual Basic. Дополнительные сведения см. в разделе LINQ to DataSet.

LINQ to SQL

LINQ to SQL поддерживает запросы к объектной модели, сопоставленной со структурами данных реляционной базы данных без использования промежуточной концептуальной модели. Каждая таблица представлена отдельным классом, тесно связав объектную модель с схемой реляционной базы данных. LINQ to SQL преобразует интегрированные с языком запросы в объектной модели в Transact-SQL и отправляет их в базу данных для выполнения. Когда база данных возвращает результаты, LINQ to SQL преобразует результаты обратно в объекты. Дополнительные сведения см. в разделе LINQ to SQL.

ADO.NET Entity Framework

Платформа Entity Framework ADO.NET предназначена для того, чтобы разработчики могли создавать приложения доступа к данным, программируя на основе концептуальной модели приложений, а не непосредственно на схеме реляционного хранилища. Цель заключается в уменьшении объема кода и обслуживания, необходимых для приложений, ориентированных на данные. Дополнительные сведения см. в разделе ADO.NET Entity Framework.

Службы данных WCF

Службы данных WCF используются для развертывания служб данных в Интернете или интрасети. Данные структурированы как сущности и связи в соответствии с спецификациями модели данных сущности. Данные, развернутые в этой модели, доступны по стандартному протоколу HTTP. Дополнительные сведения см. в разделе Службы данных WCF 4.5.

XML и ADO.NET

ADO.NET использует возможности XML для предоставления отключенного доступа к данным. ADO.NET был разработан в тесной связи вместе с классами XML в .NET Framework; оба являются компонентами единой архитектуры.

ADO.NET и XML-классы в .NET Framework сходятся в объекте DataSet. Его DataSet можно заполнить данными из источника XML, будь то файл или XML-поток. Его DataSet можно записать как XML-код, соответствующий протоколу World-Wide Web Consortium (W3C), который включает в себя схему на языке определения XML-схем (XSD), независимо от источника данных в DataSet. Из-за собственного формата сериализации DataSet, который является XML, это удобное средство для перемещения данных между уровнями, что делает DataSet оптимальным выбором для дистанционной передачи данных и контекста схемы в веб-службу XML и из нее. Дополнительные сведения см. в xml-документах и данных.

См. также