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

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

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

Поставщик данных .NET Framework Description
Поставщик данных .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 поддерживает клиентское программное обеспечение Oracle версии 8.1.7 и более поздних версий и использует System.Data.OracleClient пространство имен.
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.

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

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

Объект Description
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 или Open Database Подключение ivity (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.

Data providers
Сравнение поставщика данных .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.

Драйвер Provider
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.

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

Рекомендуется для одноуровневых приложений, использующих Microsoft ядро СУБД (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 Provider для Entity Framework.

См. также