Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Пространство имен Microsoft.Data.SqlClient включает поддерживаемый поставщик данных .NET для баз данных, совместимых с SQL Server. Изначально это было ответвление от System.Data.SqlClient, и оно сохраняет знакомую модель программирования ADO.NET, при этом новые функции SQL Server поставляются независимо от среды выполнения .NET.
Используйте Microsoft.Data.SqlClient для новой разработки.
Установка и импорт пространства имён
Добавьте пакет NuGet:
dotnet add package Microsoft.Data.SqlClient
Импортируйте пространство имён:
using Microsoft.Data.SqlClient;
Большинство приложений используют SqlConnection, SqlCommand, SqlParameterSqlDataReader, и SqlTransaction. Для полной публичной поверхности см. ссылку на API Microsoft. Data.SqlClient.
Связь с ADO.NET
Microsoft. Data.SqlClient реализует независимые от провайдера типы из System.Data.Common, включая DbConnection, DbCommand, DbDataReader, и DbTransaction. Также он предоставляет специфические для SQL Server API такие же, как:
SqlBulkCopySqlBatchSqlConnectionStringBuilderSqlConfigurableRetryFactorySqlDependency- Поддержка аутентификации, шифрования и типов данных, специфичных для SQL Server
Для получения рекомендаций по выбору независимых от провайдера или специфичных для SqlClient API см. раздел ADO.NET architecture with Microsoft. Data.SqlClient.
Связь с System.Data.SqlClient
System.Data.SqlClientэто старый провайдер, который поставляется с .NET Framework и более ранними версиями .NET.
Microsoft.Data.SqlClient использует многие одинаковые типовые имена, но имеет разные пакеты, пространства имён, настройки по умолчанию, функции и политики поддержки.
Не ссылайтесь на обоих провайдеров в новом коде приложения. Типы с одинаковыми названиями из двух пакетов не взаимозаменяемы. Например, System.Data.SqlClient.SqlConnection нельзя передать там, где требуется Microsoft.Data.SqlClient.SqlConnection.
Миграция обычно начинается с добавления пакета Microsoft.Data.SqlClient и изменения ссылок на пространство имён, но также необходимо проверить шифрование соединений, параметры, конфигурацию, транзитивные зависимости и поведение во время выполнения. Перед развертыванием выполните инструкции в статье Переход с System.Data.SqlClient на Microsoft.Data.SqlClient.
Совместимость версий
Версия пакета драйверов независима от версии приложения в .NET и версии движка базы данных. Проверьте все три:
| Component | Что проверить |
|---|---|
| Microsoft.Data.SqlClient | Выпускная линия поддерживается и содержит функции, используемые вашим приложением. |
| .NET или .NET Фреймворк | Приложение ориентировано на среду выполнения, поддерживаемую этим выпуском драйвера. |
| База данных, совместимых с SQL Server | Версия драйвера поддерживает версию базы данных, а сервер — любые запрошенные функции протокола, такие как TDS 8.0. |
Для актуальных матриц см. жизненный цикл поддержки драйверов SqlClient.
Изменения, связанные с версией
Выпуски драйверов могут добавлять API, перемещать опциональные зависимости и менять безопасные настройки по умолчанию. Проверяйте изменения перед каждым незначительным или крупным обновлением.
Вот некоторые примеры:
- В версии 4.0 для
Encryptпо умолчанию установлено значениеtrue. - В версии 5.0 были представлены
SqlConnectionEncryptOptionиEncrypt=Strictдля TDS 8.0. - В версии 5.2 была представлена функция
SqlBatchдля поддерживаемых современных целевых платформ .NET. - Версия 7.0 переместила аутентификацию Microsoft Entra, предоставляемую драйвером, в
Microsoft.Data.SqlClient.Extensions.Azure.
Посмотрите, что нового в Microsoft. Data.SqlClient — ссылки на релизные заметки и обзор обновлений.
Связанные пространства имён и пакеты
Некоторые функции используют типы вне основного пространства имён или опциональные пакеты.
| Пространство имён или пакет | Purpose |
|---|---|
Microsoft.Data.SqlClient.Server |
Реализации SqlDataRecord и SqlMetaData в SqlClient. |
Microsoft.Data.SqlTypes |
Типы, специфичные для SqlClient, например SqlFileStream, SqlJson и SqlVector<T>. |
Microsoft.Data.SqlClient.Diagnostics |
Строго типизированные данные диагностических событий. |
Microsoft.Data.SqlClient.Extensions.Azure |
Аутентификация Microsoft Entra, предоставляемая драйвером, для версии 7.0 и более поздних версий. |
Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider |
Интеграция Azure Key Vault для Always Encrypted |
Не делайте выводы о требованиях пакета только по пространству имён. Ознакомьтесь со статьёй с описанием функций и сведениями о зависимостях пакета NuGet для используемой версии драйвера.