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

Поставщик данных .NET Framework используется для соединения с базой данных, выполнения команд и получения результатов.A .NET Framework data provider is used for connecting to a database, executing commands, and retrieving results. Эти результаты обрабатываются непосредственно, помещаются в DataSet , чтобы по мере необходимости они были доступны для пользователей вместе с данными из нескольких источников, либо распределяются между уровнями.Those results are either processed directly, placed in a DataSet in order to be exposed to the user as needed, combined with data from multiple sources, or remoted between tiers. Поставщики данных .NET framework являются облегченными и создают минимальный уровень между источником данных и кода, повышая производительность без ущерба для функциональных возможностей..NET Framework data providers are lightweight, creating a minimal layer between the data source and code, increasing performance without sacrificing functionality.

В следующей таблице перечислены поставщики данных, включенных в .NET Framework.The following table lists the data providers that are included in the .NET Framework.

Поставщик данных .NET Framework.NET Framework data provider ОписаниеDescription
Поставщик данных .NET Framework для SQL Server.NET Framework Data Provider for SQL Server Предоставляет доступ к данным для Microsoft SQL Server.Provides data access for Microsoft SQL Server. Использует пространство имен System.Data.SqlClient .Uses the System.Data.SqlClient namespace.
Поставщик данных .NET Framework для OLE DB.NET Framework Data Provider for OLE DB Для источников данных OLE DB.For data sources exposed by using OLE DB. Использует пространство имен System.Data.OleDb .Uses the System.Data.OleDb namespace.
Поставщик данных .NET Framework для ODBC.NET Framework Data Provider for ODBC Для источников данных ODBC.For data sources exposed by using ODBC. Использует пространство имен System.Data.Odbc .Uses the System.Data.Odbc namespace.
Поставщик данных .NET Framework для Oracle.NET Framework Data Provider for Oracle Для источников данных Oracle.For Oracle data sources. Поставщик данных .NET Framework для Oracle поддерживает клиентское программное обеспечение версии 8.1.7 и более поздних версий и использует System.Data.OracleClient пространства имен.The .NET Framework Data Provider for Oracle supports Oracle client software version 8.1.7 and later, and uses the System.Data.OracleClient namespace.
EntityClient - поставщикEntityClient Provider Предоставляет доступ к данным для приложений модели EDM (Entity Data Model).Provides data access for Entity Data Model (EDM) applications. Использует пространство имен System.Data.EntityClient .Uses the System.Data.EntityClient namespace.
Поставщик данных .NET framework для SQL Server Compact 4.0..NET Framework Data Provider for SQL Server Compact 4.0. Предоставляет доступ к данным для Microsoft SQL Server Compact 4.0.Provides data access for Microsoft SQL Server Compact 4.0. Использует пространство имен System.Data.SqlServerCe .Uses the System.Data.SqlServerCe namespace.

Основные объекты поставщиков данных .NET FrameworkCore Objects of .NET Framework Data Providers

В следующей таблице приведены четыре основных объекта, входящие в состав поставщика данных .NET Framework.The following table outlines the four core objects that make up a .NET Framework data provider.

ObjectObject ОписаниеDescription
Connection Устанавливает соединение с конкретным источником данных.Establishes a connection to a specific data source. Базовым классом для всех объектов Connection является DbConnection .The base class for all Connection objects is the DbConnection class.
Command Выполняет команду в источнике данных.Executes a command against a data source. Обеспечивает доступность Parameters и может выполнять команды в области Transaction из Connection.Exposes Parameters and can execute in the scope of a Transaction from a Connection. Базовым классом для всех объектов Command является DbCommand .The base class for all Command objects is the DbCommand class.
DataReader Считывает из источника данных однопроходный поток данных только для чтения.Reads a forward-only, read-only stream of data from a data source. Базовым классом для всех объектов DataReader является DbDataReader .The base class for all DataReader objects is the DbDataReader class.
DataAdapter Заполняет DataSet и выполняет обновления в источнике данных.Populates a DataSet and resolves updates with the data source. Базовым классом для всех объектов DataAdapter является DbDataAdapter .The base class for all DataAdapter objects is the DbDataAdapter class.

В дополнение к основные классы, перечисленные в таблице выше в данном документе поставщик данных .NET Framework также содержит классы, перечисленные в следующей таблице.In addition to the core classes listed in the table earlier in this document, a .NET Framework data provider also contains the classes listed in the following table.

ObjectObject ОписаниеDescription
Transaction Прикрепляет команды к транзакциям в источнике данных.Enlists commands in transactions at the data source. Базовым классом для всех объектов Transaction является DbTransaction .The base class for all Transaction objects is the DbTransaction class. ADO.NET также поддерживает транзакции, использующие классы в пространстве имен System.Transactions .ADO.NET also provides support for transactions using classes in the System.Transactions namespace.
CommandBuilder Объект помощника, автоматически формирующий свойства команд DataAdapter или извлекающий сведения о параметрах из хранимой процедуры и заполняющий коллекцию Parameters объекта Command .A helper object that automatically generates command properties of a DataAdapter or derives parameter information from a stored procedure and populates the Parameters collection of a Command object. Базовым классом для всех объектов CommandBuilder является DbCommandBuilder .The base class for all CommandBuilder objects is the DbCommandBuilder class.
ConnectionStringBuilder Объект помощника, обеспечивающий простой способ создания и управления содержимым строки соединения, которую используют объекты Connection .A helper object that provides a simple way to create and manage the contents of connection strings used by the Connection objects. Базовым классом для всех объектов ConnectionStringBuilder является DbConnectionStringBuilder .The base class for all ConnectionStringBuilder objects is the DbConnectionStringBuilder class.
Parameter Определяет входные, выходные и возвращаемые значения параметров для команд и хранимых процедур.Defines input, output, and return value parameters for commands and stored procedures. Базовым классом для всех объектов Parameter является DbParameter .The base class for all Parameter objects is the DbParameter class.
Exception Возвращается при возникновении ошибки в источнике данных.Returned when an error is encountered at the data source. Для ошибок на стороне клиента поставщики данных .NET Framework исключение .NET Framework.For an error encountered at the client, .NET Framework data providers throw a .NET Framework exception. Базовым классом для всех объектов Exception является DbException .The base class for all Exception objects is the DbException class.
Error Отображает сведения, относящиеся к предупреждениям и ошибкам, возвращенным источником данных.Exposes the information from a warning or error returned by a data source.
ClientPermission Предоставляются для атрибутов безопасности доступа, код поставщика данных .NET Framework.Provided for .NET Framework data provider code access security attributes. Базовым классом для всех объектов ClientPermission является DBDataPermission .The base class for all ClientPermission objects is the DBDataPermission class.

Поставщик данных .NET framework для SQL Server (SqlClient).NET Framework Data Provider for SQL Server (SqlClient)

Поставщик данных .NET Framework для SQL Server (SqlClient) использует свой собственный протокол для взаимодействия с SQL Server.The .NET Framework Data Provider for SQL Server (SqlClient) uses its own protocol to communicate with SQL Server. Это простой и высокопроизводительный он оптимизирован для доступа к SQL Server напрямую, не добавляя к слою OLE DB и Open Database Connectivity (ODBC).It is lightweight and performs well because it is optimized to access a SQL Server directly without adding an OLE DB or Open Database Connectivity (ODBC) layer. Ниже они отличаются поставщик данных .NET Framework для SQL Server с поставщиком данных .NET Framework для OLE DB.The following illustration contrasts the .NET Framework Data Provider for SQL Server with the .NET Framework Data Provider for OLE DB. Поставщик данных .NET Framework для OLE DB взаимодействует с источником данных OLE DB через компонент службы OLE DB, который поддерживает пулы соединений и службы транзакций и поставщик OLE DB для источника данных.The .NET Framework Data Provider for OLE DB communicates to an OLE DB data source through both the OLE DB Service component, which provides connection pooling and transaction services, and the OLE DB provider for the data source.

Примечание

Поставщик данных .NET Framework для ODBC имеет схожую архитектуру для поставщика данных .NET Framework для OLE DB. Например он вызывает компонент службы ODBC.The .NET Framework Data Provider for ODBC has a similar architecture to the .NET Framework Data Provider for OLE DB; for example, it calls into an ODBC Service Component.

Поставщики данныхData providers
Сравнение поставщика данных .NET Framework для SQL Server и поставщика данных .NET Framework для OLE DBComparison of the .NET Framework Data Provider for SQL Server and the .NET Framework Data Provider for OLE DB

Поставщик данных .NET Framework для классов SQL Server находятся в папке System.Data.SqlClient пространства имен.The .NET Framework Data Provider for SQL Server classes are located in the System.Data.SqlClient namespace.

Поставщик данных .NET Framework для SQL Server поддерживает как локальные, так и распределенные транзакции.The .NET Framework Data Provider for SQL Server supports both local and distributed transactions. Для распределенных транзакций поставщик данных .NET Framework для SQL Server, по умолчанию автоматически задействуется в транзакции и получает сведения о транзакциях из служб компонентов Windows или System.Transactions.For distributed transactions, the .NET Framework Data Provider for SQL Server, by default, automatically enlists in a transaction and obtains transaction details from Windows Component Services or System.Transactions. Дополнительные сведения см. в разделе транзакции и параллельность.For more information, see Transactions and Concurrency.

Следующий пример кода показывает, как включать в приложения пространство имен System.Data.SqlClient .The following code example shows how to include the System.Data.SqlClient namespace in your applications.

Imports System.Data.SqlClient  
using System.Data.SqlClient;  

Поставщик данных .NET Framework для OLE DB.NET Framework Data Provider for OLE DB

Поставщик данных .NET Framework для OLE DB (OleDb) использует OLE DB для собственного через COM-взаимодействие обеспечивает доступ к данным.The .NET Framework Data Provider for OLE DB (OleDb) uses native OLE DB through COM interop to enable data access. Поставщик данных .NET Framework для OLE DB поддерживает как локальные, так и распределенные транзакции.The .NET Framework Data Provider for OLE DB supports both local and distributed transactions. Для распределенных транзакций поставщик данных .NET Framework для OLE DB, по умолчанию автоматически задействуется в транзакции и получает сведения о транзакциях из служб компонентов Windows.For distributed transactions, the .NET Framework Data Provider for OLE DB, by default, automatically enlists in a transaction and obtains transaction details from Windows Component Services. Дополнительные сведения см. в разделе транзакции и параллельность.For more information, see Transactions and Concurrency.

В следующей таблице показаны поставщики, которые были протестированы с помощью ADO.NET.The following table shows the providers that have been tested with ADO.NET.

ДрайверDriver ПоставщикProvider
SQLOLEDBSQLOLEDB Поставщик Microsoft OLE DB для SQL ServerMicrosoft OLE DB provider for SQL Server
MSDAORAMSDAORA Поставщик Microsoft OLE DB для OracleMicrosoft OLE DB provider for Oracle
Microsoft.Jet.OLEDB.4.0Microsoft.Jet.OLEDB.4.0 Поставщик OLE DB для Microsoft JetOLE DB provider for Microsoft Jet

Примечание

Использование базы данных Access (Jet) в качестве источника данных для многопоточных приложений, таких как ASP.NET, не рекомендуется.Using an Access (Jet) database as a data source for multithreaded applications, such as ASP.NET applications, is not recommended. При Jet необходимо использовать в качестве источника данных для приложения ASP.NET, учтите, что ASP.NET-приложений, подключающихся к базе данных Access можно столкнуться с проблемами соединения.If you must use Jet as a data source for an ASP.NET application, realize that ASP.NET applications connecting to an Access database can encounter connection problems.

Поставщик данных .NET Framework для OLE DB не поддерживает интерфейсы OLE DB версии 2.5.The .NET Framework Data Provider for OLE DB does not support OLE DB version 2.5 interfaces. Поставщики OLE DB, требуется поддержка интерфейсов OLE DB 2.5 не будет функционировать правильно с поставщик данных .NET Framework для OLE DB.OLE DB Providers that require support for OLE DB 2.5 interfaces will not function correctly with the .NET Framework Data Provider for OLE DB. Это относится к поставщику OLE DB для Exchange (Майкрософт) и поставщику Microsoft OLE DB для публикаций в Интернете.This includes the Microsoft OLE DB provider for Exchange and the Microsoft OLE DB provider for Internet Publishing.

Поставщик данных .NET Framework для OLE DB не работает с поставщиком OLE DB для ODBC (MSDASQL).The .NET Framework Data Provider for OLE DB does not work with the OLE DB provider for ODBC (MSDASQL). Для доступа к источнику данных ODBC с помощью ADO.NET, используйте поставщик данных .NET Framework для ODBC.To access an ODBC data source using ADO.NET, use the .NET Framework Data Provider for ODBC.

Поставщик данных .NET framework для OLE DB классы находятся в папке System.Data.OleDb пространства имен..NET Framework Data Provider for OLE DB classes are located in the System.Data.OleDb namespace. Следующий пример кода показывает, как включать в приложения пространство имен System.Data.OleDb .The following code example shows how to include the System.Data.OleDb namespace in your applications.

Imports System.Data.OleDb  
using System.Data.OleDb;  

Поставщик данных .NET Framework для ODBC.NET Framework Data Provider for ODBC

Поставщик данных .NET Framework для ODBC (Odbc) использует собственный диспетчер драйверов ODBC (DM) для доступа к данным.The .NET Framework Data Provider for ODBC (Odbc) uses the native ODBC Driver Manager (DM) to enable data access. Поставщик данных ODBC поддерживает как локальные, так и распределенные транзакции.The ODBC data provider supports both local and distributed transactions. Для распределенных транзакций поставщик данных ODBC по умолчанию автоматически задействуется в транзакции и получает сведения о транзакциях из служб компонентов Windows.For distributed transactions, the ODBC data provider, by default, automatically enlists in a transaction and obtains transaction details from Windows Component Services. Дополнительные сведения см. в разделе транзакции и параллельность.For more information, see Transactions and Concurrency.

В следующей таблице показаны драйверы ODBC, протестированные с помощью ADO.NET.The following table shows the ODBC drivers tested with ADO.NET.

ДрайверDriver
SQL ServerSQL Server
Microsoft ODBC для OracleMicrosoft ODBC for Oracle
Драйвер Microsoft Access (*.mdb)Microsoft Access Driver (*.mdb)

Поставщик данных .NET framework для ODBC классы находятся в папке System.Data.Odbc пространства имен..NET Framework Data Provider for ODBC classes are located in the System.Data.Odbc namespace.

Следующий пример кода показывает, как включать в приложения пространство имен System.Data.Odbc .The following code example shows how to include the System.Data.Odbc namespace in your applications.

Imports System.Data.Odbc  
using System.Data.Odbc;  

Примечание

Поставщик данных .NET Framework для ODBC требует MDAC 2.6 или более поздней версии, и рекомендуется MDAC 2.8 с пакетом обновления 1.The .NET Framework Data Provider for ODBC requires MDAC 2.6 or a later version, and MDAC 2.8 SP1 is recommended. Компоненты MDAC 2.8 с пакетом обновления 1 (SP1) можно скачать на веб-сайте Data Access and Storage Developer Center(центр разработчиков средств доступа к данным и их хранения).You can download MDAC 2.8 SP1 from the Data Access and Storage Developer Center.

Поставщик данных .NET Framework для Oracle.NET Framework Data Provider for Oracle

Поставщик данных .NET Framework для Oracle (OracleClient) обеспечивает доступ к источникам данных Oracle через клиентское по Oracle.The .NET Framework Data Provider for Oracle (OracleClient) enables data access to Oracle data sources through Oracle client connectivity software. Поставщик данных поддерживает клиентское ПО Oracle версии 8.1.7 или более поздней версии.The data provider supports Oracle client software version 8.1.7 or a later version. Поставщик данных поддерживает как локальные, так и распределенные транзакции.The data provider supports both local and distributed transactions. Дополнительные сведения см. в разделе транзакции и параллельность.For more information, see Transactions and Concurrency.

Поставщик данных .NET Framework для Oracle требуется клиентское программное обеспечение Oracle (версии 8.1.7 или более поздней версии) в системе, прежде чем можно подключиться к источнику данных Oracle.The .NET Framework Data Provider for Oracle requires Oracle client software (version 8.1.7 or a later version) on the system before you can connect to an Oracle data source.

Поставщик данных .NET framework для Oracle классы находятся в папке System.Data.OracleClient пространства имен и содержится в System.Data.OracleClient.dll сборки..NET Framework Data Provider for Oracle classes are located in the System.Data.OracleClient namespace and are contained in the System.Data.OracleClient.dll assembly. При компиляции приложения, использующего этот источник данных, необходимо ссылаться как на System.Data.dll , так и на System.Data.OracleClient.dll .You must reference both the System.Data.dll and the System.Data.OracleClient.dll when you compile an application that uses the data provider.

Следующий пример кода показывает, как включать в приложения пространство имен System.Data.OracleClient .The following code example shows how to include the System.Data.OracleClient namespace in your applications.

Imports System.Data  
Imports System.Data.OracleClient  
using System.Data;  
using System.Data.OracleClient;  

Выбор поставщика данных платформы .NET FrameworkChoosing a .NET Framework Data Provider

В зависимости от источника данных для вашего приложения Выбор поставщика данных .NET Framework может повысить производительность, возможности и целостность приложения.Depending on the design and data source for your application, your choice of .NET Framework data provider can improve the performance, capability, and integrity of your application. В следующей таблице приведены преимущества и ограничения каждого поставщика данных .NET Framework.The following table discusses the advantages and limitations of each .NET Framework data provider.

ПоставщикProvider ПримечанияNotes
Поставщик данных .NET Framework для SQL Server.NET Framework Data Provider for SQL Server Рекомендуется для одноуровневых приложений, использующих Microsoft SQL Server.Recommended for middle-tier applications that use Microsoft SQL Server.

Рекомендуется для одноуровневых приложений, использующих Microsoft Database Engine (MSDE) или SQL Server.Recommended for single-tier applications that use Microsoft Database Engine (MSDE) or SQL Server.

Рекомендуется использовать поставщик OLE DB для SQL Server (SQLOLEDB) с поставщиком данных .NET Framework для OLE DB.Recommended over use of the OLE DB provider for SQL Server (SQLOLEDB) with the .NET Framework Data Provider for OLE DB.
Поставщик данных .NET Framework для OLE DB.NET Framework Data Provider for OLE DB Для SQL Server поставщик данных .NET Framework для SQL Server рекомендуется вместо этого поставщика.For SQL Server, the .NET Framework Data Provider for SQL Server is recommended instead of this provider.

Рекомендуется для одноуровневых приложений, использующих базы данных Microsoft Access.Recommended for single-tier applications that use Microsoft Access databases. Базы данных Microsoft Access не рекомендуется использовать для приложений среднего уровня.Use of an Access database for a middle-tier application is not recommended.
Поставщик данных .NET Framework для ODBC.NET Framework Data Provider for ODBC Рекомендуется для приложений среднего уровня и одноуровневых приложений, использующих источники данных ODBC.Recommended for middle and single-tier applications that use ODBC data sources.
Поставщик данных .NET Framework для Oracle.NET Framework Data Provider for Oracle Рекомендуется для приложений среднего уровня и одноуровневых приложений, использующих источники данных Oracle.Recommended for middle and single-tier applications that use Oracle data sources.

EntityClient - поставщикEntityClient Provider

Поставщик EntityClient используется для доступа к данным на основе модели EDM (Entity Data Model).The EntityClient provider is used for accessing data based on an Entity Data Model (EDM). В отличие от других поставщиков данных .NET этот поставщик не взаимодействует с источником данных непосредственно.Unlike the other .NET Framework data providers, it does not interact directly with a data source. Вместо этого для взаимодействия с соответствующим поставщиком данных используется язык Entity SQL.Instead, it uses Entity SQL to communicate with the underlying data provider. Дополнительные сведения см. в разделе поставщик EntityClient для Entity Framework.For more information, see EntityClient Provider for the Entity Framework.

См. такжеSee also