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

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

В следующей таблице перечислены поставщики данных, включенные в платформа .NET Framework.

Поставщик данных .NET Framework Описание
Поставщик данных .NET Framework для SQL Server Предоставляет доступ к данным для Microsoft SQL Server. Использует пространство имен System.Data.SqlClient .
Поставщик данных .NET Framework для OLE DB Для источников данных OLE DB. Использует пространство имен System.Data.OleDb .
Поставщик данных .NET Framework для ODBC Для источников данных ODBC. Использует пространство имен System.Data.Odbc .
Поставщик данных .NET Framework для Oracle Для источников данных Oracle. Поставщик данных платформа .NET Framework для Oracle поддерживает клиентское System.Data.OracleClient программное обеспечение Oracle версии 8.1.7 и более поздних версий и использует пространство имен.
EntityClient - поставщик Предоставляет доступ к данным для приложений модели EDM (Entity Data Model). Использует пространство имен System.Data.EntityClient .
платформа .NET Framework поставщик данных для SQL Server Compact 4.0. Предоставляет доступ к данным для Microsoft SQL Server Compact 4.0. Использует пространство имен System.Data.SqlServerCe .

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

В следующей таблице перечислены четыре основных объекта, составляющих поставщик данных платформа .NET Framework.

Объект Описание
Connection Устанавливает соединение с конкретным источником данных. Базовым классом для всех объектов Connection является DbConnection .
Command Выполняет команду в источнике данных. Обеспечивает доступность Parameters и может выполнять команды в области Transaction из Connection. Базовым классом для всех объектов Command является DbCommand .
DataReader Считывает из источника данных однопроходный поток данных только для чтения. Базовым классом для всех объектов DataReader является DbDataReader .
DataAdapter Заполняет DataSet и выполняет обновления в источнике данных. Базовым классом для всех объектов DataAdapter является DbDataAdapter .

Помимо основных классов, перечисленных в таблице ранее в этом документе, поставщик данных платформа .NET Framework также содержит классы, перечисленные в следующей таблице.

Объект Описание
Transaction Прикрепляет команды к транзакциям в источнике данных. Базовым классом для всех объектов Transaction является DbTransaction . ADO.NET также поддерживает транзакции, использующие классы в пространстве имен System.Transactions .
CommandBuilder Объект помощника, автоматически формирующий свойства команд DataAdapter или извлекающий сведения о параметрах из хранимой процедуры и заполняющий коллекцию Parameters объекта Command . Базовым классом для всех объектов CommandBuilder является DbCommandBuilder .
ConnectionStringBuilder Объект помощника, обеспечивающий простой способ создания и управления содержимым строки соединения, которую используют объекты Connection . Базовым классом для всех объектов ConnectionStringBuilder является DbConnectionStringBuilder .
Parameter Определяет входные, выходные и возвращаемые значения параметров для команд и хранимых процедур. Базовым классом для всех объектов Parameter является DbParameter .
Exception Возвращается при возникновении ошибки в источнике данных. При возникновении ошибки на клиенте поставщики данных платформа .NET Framework вызывают исключение платформа .NET Framework. Базовым классом для всех объектов Exception является DbException .
Error Отображает сведения, относящиеся к предупреждениям и ошибкам, возвращенным источником данных.
ClientPermission Предоставляется для платформа .NET Framework атрибутов безопасности доступа к коду поставщика данных. Базовым классом для всех объектов ClientPermission является DBDataPermission .

Поставщик данных платформа .NET Framework для SQL Server (SqlClient)

Поставщик данных платформа .NET Framework для SQL Server (SqlClient) использует собственный протокол для взаимодействия с SQL Server. Он является легким и хорошо работает, так как оптимизирован для доступа к SQL Server напрямую без добавления уровня OLE DB или ODBC. На следующем рисунке поставщик данных платформа .NET Framework для SQL Server отличается от поставщика данных платформа .NET Framework для OLE DB. Поставщик данных платформа .NET Framework для OLE DB взаимодействует с источником данных OLE DB через компонент службы OLE DB, который предоставляет службы пулов подключений и транзакций, и поставщик OLE DB для источника данных.

Примечание

Поставщик данных платформа .NET Framework для ODBC имеет архитектуру, аналогичную архитектуре поставщика данных платформа .NET Framework для OLE DB. Например, он вызывает компонент службы ODBC.

Поставщики NETDataProviders_bpuedev11
Сравнение поставщика данных .NET Framework для SQL Server и поставщика данных .NET Framework для OLE DB

Поставщик данных платформа .NET Framework для классов SQL Server находится в System.Data.SqlClient пространстве имен .

Поставщик данных платформа .NET Framework для SQL Server поддерживает как локальные, так и распределенные транзакции. Для распределенных транзакций поставщик данных платформа .NET Framework для SQL Server по умолчанию автоматически заверяется в транзакцию и получает сведения о транзакции из служб компонентов Windows или System.Transactions. Дополнительные сведения см. в разделе Транзакции и параллелизм.

Следующий пример кода показывает, как включать в приложения пространство имен System.Data.SqlClient .

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

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

Поставщик данных платформа .NET Framework для OLE DB (OleDb) использует собственный OLE DB через COM-взаимодействие для обеспечения доступа к данным. Поставщик данных платформа .NET Framework для OLE DB поддерживает как локальные, так и распределенные транзакции. Для распределенных транзакций поставщик данных платформа .NET Framework для OLE DB по умолчанию автоматически заверяет транзакцию и получает сведения о транзакции из служб компонентов Windows. Дополнительные сведения см. в разделе Транзакции и параллелизм.

В следующей таблице показаны поставщики, которые были протестированы с помощью ADO.NET.

Драйвер Поставщик
SQLOLEDB Поставщик Microsoft OLE DB для SQL Server
MSDAORA Поставщик Microsoft OLE DB для Oracle
Microsoft.Jet.OLEDB.4.0 Поставщик OLE DB для Microsoft Jet

Примечание

Не рекомендуется использовать базу данных Access (Jet) в качестве источника данных для многопоточных приложений, таких как ASP.NET приложения. Если необходимо использовать Jet в качестве источника данных для ASP.NET приложения, учтите, что ASP.NET приложения, подключающиеся к базе данных Access, могут столкнуться с проблемами подключения.

Поставщик данных платформа .NET Framework для OLE DB не поддерживает интерфейсы OLE DB версии 2.5. Поставщики OLE DB, которым требуется поддержка интерфейсов OLE DB 2.5, не будут правильно работать с поставщиком данных платформа .NET Framework для OLE DB. Это относится к поставщику OLE DB для Exchange (Майкрософт) и поставщику Microsoft OLE DB для публикаций в Интернете.

Поставщик данных платформа .NET Framework для OLE DB не работает с поставщиком OLE DB для ODBC (MSDASQL). Чтобы получить доступ к источнику данных ODBC с помощью ADO.NET, используйте поставщик данных платформа .NET Framework для ODBC.

платформа .NET Framework поставщик данных для классов OLE DB находятся в System.Data.OleDb пространстве имен . Следующий пример кода показывает, как включать в приложения пространство имен System.Data.OleDb .

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

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

Поставщик данных платформа .NET Framework для ODBC (Odbc) использует собственный диспетчер драйверов ODBC (DM) для обеспечения доступа к данным. Поставщик данных ODBC поддерживает как локальные, так и распределенные транзакции. Для распределенных транзакций поставщик данных ODBC по умолчанию автоматически задействуется в транзакции и получает сведения о транзакциях из служб компонентов Windows. Дополнительные сведения см. в разделе Транзакции и параллелизм.

В следующей таблице показаны драйверы ODBC, протестированные с помощью ADO.NET.

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

платформа .NET Framework Поставщик данных для классов ODBC находится в System.Data.Odbc пространстве имен.

Следующий пример кода показывает, как включать в приложения пространство имен System.Data.Odbc .

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

Примечание

Поставщику данных платформа .NET Framework для ODBC требуется MDAC 2.6 или более поздней версии, и рекомендуется MDAC 2.8 с пакетом обновления 1 (SP1).

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

Поставщик данных платформа .NET Framework для Oracle (OracleClient) обеспечивает доступ к источникам данных Oracle с помощью программного обеспечения для подключения клиента Oracle. Поставщик данных поддерживает клиентское ПО Oracle версии 8.1.7 или более поздней версии. Поставщик данных поддерживает как локальные, так и распределенные транзакции. Дополнительные сведения см. в разделе Транзакции и параллелизм.

Поставщику данных платформа .NET Framework для Oracle требуется клиентское программное обеспечение Oracle (версия 8.1.7 или более поздняя) в системе, прежде чем вы сможете подключиться к источнику данных Oracle.

платформа .NET Framework Классы поставщика данных для Oracle находятся в System.Data.OracleClient пространстве имен и содержатся в сборкеSystem.Data.OracleClient.dll. При компиляции приложения, использующего этот источник данных, необходимо ссылаться как на System.Data.dll , так и на System.Data.OracleClient.dll .

Следующий пример кода показывает, как включать в приложения пространство имен System.Data.OracleClient .

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

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

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

Поставщик Примечания
Поставщик данных .NET Framework для SQL Server Рекомендуется для приложений среднего уровня, использующих Microsoft SQL Server.

Рекомендуется для одноуровневых приложений, использующих ядро СУБД Майкрософт (MSDE) или SQL Server.

Рекомендуется использовать поставщик OLE DB для SQL Server (SQLOLEDB) с поставщиком данных платформа .NET Framework для OLE DB.
Поставщик данных .NET Framework для OLE DB Для SQL Server вместо этого поставщика рекомендуется использовать поставщик данных платформа .NET Framework для SQL Server.

Рекомендуется для одноуровневых приложений, использующих базы данных Microsoft Access. Базы данных Microsoft Access не рекомендуется использовать для приложений среднего уровня.
Поставщик данных .NET Framework для ODBC Рекомендуется для приложений среднего уровня и одноуровневых приложений, использующих источники данных ODBC.
Поставщик данных .NET Framework для Oracle Рекомендуется для приложений среднего уровня и одноуровневых приложений, использующих источники данных Oracle.

EntityClient - поставщик

Поставщик EntityClient используется для доступа к данным на основе модели EDM (Entity Data Model). В отличие от других поставщиков данных .NET этот поставщик не взаимодействует с источником данных непосредственно. Вместо этого для взаимодействия с соответствующим поставщиком данных используется язык Entity SQL. Дополнительные сведения см. в разделе Поставщик EntityClient для Entity Framework.

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