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

Обработка данных традиционно полагалась в основном на двухуровневую модель, основанную на сетевом соединении.Data processing has traditionally relied primarily on a connection-based, two-tier model. Так как при обработке данных все больше используется многоуровневая архитектура, программисты переходят на метод, не использующий подключение, чтобы обеспечить лучшую масштабируемость для их приложений.As data processing increasingly uses multi-tier architectures, programmers are switching to a disconnected approach to provide better scalability for their applications.

Компоненты ADO.NETADO.NET Components

Поставщики данных .NET Framework являются двумя основными компонентами ADO.NET для доступа и обработки данных и DataSet.The two main components of ADO.NET for accessing and manipulating data are the .NET Framework data providers and the DataSet.

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

Поставщиками данных .NET Framework являются компоненты, которые специально сконструированы для обработки данных и быстрого, однопроходного доступа к данным только для чтения.The .NET Framework Data Providers are components that have been explicitly designed for data manipulation and fast, forward-only, read-only access to data. Объект Connection обеспечивает обмен данными с источником данных.The Connection object provides connectivity to a data source. Объект Command позволяет обращаться к командам базы данных для возврата данных, изменения данных, выполнения хранимых процедур и передачи или получения сведений о параметрах.The Command object enables access to database commands to return data, modify data, run stored procedures, and send or retrieve parameter information. DataReader обеспечивает высокопроизводительный поток данных из источника данных.The DataReader provides a high-performance stream of data from the data source. Наконец, DataAdapter предоставляет мост между объектом DataSet и источником данных.Finally, the DataAdapter provides the bridge between the DataSet object and the data source. DataAdapter использует объекты Command для выполнения команд SQL на источнике данных для загрузки DataSet с данными и согласования изменений данных, выполненных в DataSet, вновь с источником данных.The DataAdapter uses Command objects to execute SQL commands at the data source to both load the DataSet with data and reconcile changes that were made to the data in the DataSet back to the data source. Дополнительные сведения см. в разделе поставщики данных .NET Framework и получение и изменение данных в ADO.NET.For more information, see .NET Framework Data Providers and Retrieving and Modifying Data in ADO.NET.

DataSetThe DataSet

Класс DataSet в ADO.NET специально сконструирован для доступа к данным независимо от источника данных.The ADO.NET DataSet is explicitly designed for data access independent of any data source. Поэтому он может быть использован со многими и разными источниками данных, с XML-данными или для управления данными, локальными для приложения.As a result, it can be used with multiple and differing data sources, used with XML data, or used to manage data local to the application. DataSet содержит коллекцию одного или нескольких объектов DataTable, состоящих из строк и столбцов данных, а также первичный ключ, внешний ключ, ограничение и связанные сведения о данных в объектах DataTable.The DataSet contains a collection of one or more DataTable objects consisting of rows and columns of data, and also primary key, foreign key, constraint, and relation information about the data in the DataTable objects. Дополнительные сведения см. в разделе Наборы данных, таблицы данных и объекты DataView.For more information, see DataSets, DataTables, and DataViews.

На следующей схеме показана связь между поставщика данных .NET Framework и DataSet.The following diagram illustrates the relationship between a .NET Framework data provider and a DataSet.

Графика ADO.NetADO.Net graphic
Архитектура ADO.NETADO.NET architecture

Выбор между DataReader или DataSetChoosing a DataReader or a DataSet

Когда вы решите, следует использовать ли приложение DataReader (см. в разделе получение данных с помощью объекта DataReader) или DataSet (см. в разделе наборы данных, таблицы данных и объекты DataView), необходимо рассмотреть тип функциональные возможности, которая необходима для приложения.When you decide whether your application should use a DataReader (see Retrieving Data Using a DataReader) or a DataSet (see DataSets, DataTables, and DataViews), consider the type of functionality that your application requires. DataSet предназначен для выполнения следующих задач.Use a DataSet to do the following:

  • Локальное кэширование данных в приложении для последующей обработки.Cache data locally in your application so that you can manipulate it. Если нужно только считывать результаты запроса, класс DataReader подходит наилучшим образом.If you only need to read the results of a query, the DataReader is the better choice.

  • Удаленное взаимодействие с данными между уровнями или от веб-службы XML.Remote data between tiers or from an XML Web service.

  • Динамическое взаимодействие с данными, например привязка к элементу управления Windows Forms или комбинирование и связывание данных из нескольких источников.Interact with data dynamically such as binding to a Windows Forms control or combining and relating data from multiple sources.

  • Выполнение интенсивной обработки, не требующей открытого соединения с источником данных, что освобождает соединение для использования другими клиентами.Perform extensive processing on data without requiring an open connection to the data source, which frees the connection to be used by other clients.

Если функциональность, предоставляемая классом DataSet, не нужна, можно повысить производительность приложения, используя класс DataReader для возврата данных в однопроходном режиме только для чтения.If you do not require the functionality provided by the DataSet, you can improve the performance of your application by using the DataReader to return your data in a forward-only, read-only manner. Несмотря на то что DataAdapter использует DataReader для заполнения содержимого DataSet (см. в разделе заполнение набора данных из объекта DataAdapter), с помощью DataReader, можно повысить производительность, поскольку сохранения памяти который будет использоваться DataSetи избежать обработки, необходимой для создания и заполнения содержимого DataSet.Although the DataAdapter uses the DataReader to fill the contents of a DataSet (see Populating a DataSet from a DataAdapter), by using the DataReader, you can boost performance because you will save memory that would be consumed by the DataSet, and avoid the processing that is required to create and fill the contents of the DataSet.

LINQ to DataSetLINQ to DataSet

Технология LINQ to DataSet предоставляет возможности выполнения запросов и проверки типов во время компиляции для данных, кэшированных в объекте DataSet.LINQ to DataSet provides query capabilities and compile-time type checking over data cached in a DataSet object. Эта технология позволяет писать запросы на одном из языков .NET Framework, например C# или Visual Basic.It allows you to write queries in one of the .NET Framework development language, such as C# or Visual Basic. Дополнительные сведения см. в разделе LINQ to DataSet.For more information, see LINQ to DataSet.

LINQ to SQLLINQ to SQL

LINQ to SQL поддерживает запросы к модели объектов, сопоставленной со структурами данных реляционной базы данных, без использования промежуточной концептуальной модели.LINQ to SQL supports queries against an object model that is mapped to the data structures of a relational database without using an intermediate conceptual model. Каждая таблица представляется отдельным классом; таким образом, модель объектов тесно привязывается к схеме реляционной базы данных.Each table is represented by a separate class, tightly coupling the object model to the relational database schema. LINQ to SQL преобразует запросы LINQ из модели объектов в язык Transact-SQL и передает их в базу данных для выполнения.LINQ to SQL translates language-integrated queries in the object model into Transact-SQL and sends them to the database for execution. При возврате результатов базой данных LINQ to SQL преобразует результаты обратно в объекты.When the database returns the results, LINQ to SQL translates the results back into objects. Дополнительные сведения см. в разделе LINQ to SQL.For more information, see LINQ to SQL.

ADO.NET Entity FrameworkADO.NET Entity Framework

Платформа ADO.NET Entity Framework разработана, чтобы разработчики могли создавать приложения для доступа к данным путем программирования по концептуальной модели приложения, а не по реляционной схеме хранения.The ADO.NET Entity Framework is designed to enable developers to create data access applications by programming against a conceptual application model instead of programming directly against a relational storage schema. Ее целью является уменьшение объема кода и затрат на сопровождение приложений, ориентированных на обработку данных.The goal is to decrease the amount of code and maintenance required for data-oriented applications. Дополнительные сведения см. в разделе ADO.NET Entity Framework.For more information, see ADO.NET Entity Framework.

Службы данных WCFWCF Data Services

Службы данных WCFWCF Data Services используется для развертывания служб данных в Интернете или интрасети.is used to deploy data services on the Web or an intranet. Данные структурируются как сущности и отношения согласно спецификациям модели EDM.The data is structured as entities and relationships according to the specifications of the Entity Data Model. Данные, развертываемые в данной модели, адресуются по стандартному протоколу HTTP.Data deployed on this model is addressable by standard HTTP protocol. Дополнительные сведения см. в разделе Службы данных WCF 4.5.For more information, see WCF Data Services 4.5.

XML и ADO.NETXML and ADO.NET

ADO.NET использует возможности XML для предоставления отключенный доступ к данным.ADO.NET leverages the power of XML to provide disconnected access to data. ADO.NET был спроектированный руки идут рука об руку с классами XML в .NET Framework; они являются компонентами одной архитектуры.ADO.NET was designed hand-in-hand with the XML classes in the .NET Framework; both are components of a single architecture.

ADO.NET и XML-классы в .NET Framework сходятся в DataSet объекта.ADO.NET and the XML classes in the .NET Framework converge in the DataSet object. Объект DataSet может заполняться данными из XML-источника, будь то файл или поток XML-данных.The DataSet can be populated with data from an XML source, whether it is a file or an XML stream. Объект DataSet может быть записан в виде XML-кода, соответствующего спецификациям консорциума W3C, который включает в себя схему в виде XSD, независимо от источника данных, находящихся в DataSet.The DataSet can be written as World-Wide Web Consortium (W3C) compliant XML that includes its schema as XML schema definition language (XSD) schema, regardless of the source of the data in the DataSet. Так как в DataSet собственным форматом сериализации является XML, он является отличным способом перемещения данных между уровнями. Это делает DataSet оптимальным решением для удаленного взаимодействия с контекстом данных и схемы как в направлении к веб-службе XML, так и в обратном направлении.Because of the native serialization format of the DataSet is XML, it is an excellent medium for moving data between tiers, making the DataSet an optimal choice for remoting data and schema context to and from an XML Web service. Дополнительные сведения см. в разделе XML-документы и данные.For more information, see XML Documents and Data.

См. такжеSee also