Microsoft.Data.SqlClient名前空間には、SQL Server互換データベースに対応したサポートされた.NETデータプロバイダーが含まれています。
System.Data.SqlClientのフォークとして始まり、おなじみのADO.NETプログラミングモデルを維持しつつ、.NETランタイムとは独立して新しいSQL Server機能をリリースしています。
新しい開発には Microsoft.Data.SqlClient を使用します。
名前空間をインストールしてインポートしてください
NuGetパッケージの追加:
dotnet add package Microsoft.Data.SqlClient
名前空間をインポートする:
using Microsoft.Data.SqlClient;
ほとんどのアプリケーションは SqlConnection、 SqlCommand、 SqlParameter、 SqlDataReader、 SqlTransactionを使用します。 完全な公開サーフェスについては、Microsoft.Data.SqlClient API参照を参照してください。
ADO.NETとの関係
Microsoft.Data.SqlClient は、DbConnection のプロバイダー非依存の型 (これには DbCommand、DbDataReader、DbTransaction、System.Data.Common が含まれます) を実装します。 また、以下のようなSQL Server固有のAPIも提供しています:
SqlBulkCopySqlBatchSqlConnectionStringBuilderSqlConfigurableRetryFactorySqlDependency- SQL Server固有の認証、暗号化、データ型のサポート
プロバイダーに依存しないAPIやSqlClient固有のAPIの選択に関するガイダンスについては、「MicrosoftのADO.NETアーキテクチャ」を参照してください。Data.SqlClient。
System.Data.SqlClient との関係
System.Data.SqlClientは.NETフレームワークおよび以前の.NETリリースを搭載している古いプロバイダーです。
Microsoft.Data.SqlClient 多くのタイプ名を使用していますが、パッケージ、名前空間、デフォルト、機能、サポートポリシーが異なります。
新しい申請コードで両方の提供者を言及しないでください。 同じ名前のタイプは2つのパッケージで互換性がありません。 例えば、 System.Data.SqlClient.SqlConnectionは Microsoft.Data.SqlClient.SqlConnection が必要な場所では通過できません。
移行は通常、 Microsoft.Data.SqlClient パッケージの追加と名前空間の参照変更から始まりますが、接続暗号化、パラメータ、設定、推移依存関係、実行時の挙動も確認する必要があります。 デプロイする前に、System.Data.SqlClient から Microsoft.Data.SqlClient への移行に従ってください。
バージョン互換性
ドライバーパッケージのバージョンは、アプリケーションの.NETバージョンやデータベースエンジンバージョンとは独立しています。 3つすべてをチェックしてください:
| Component | 確認する内容 |
|---|---|
| Microsoft.Data.SqlClient | リリースラインはサポートされており、アプリケーションが使用する機能が含まれています。 |
| .NET または .NET フレームワーク | アプリケーションはそのドライバーリリースでサポートされているランタイムをターゲットにします。 |
| SQL Server互換データベース | ドライバリリースはデータベースバージョンをサポートし、サーバーはTDS 8.0などの要求されたプロトコル機能もサポートします。 |
現在の行列については、 SqlClientドライバーのサポートライフサイクルを参照してください。
バージョン固有の変更
ドライバーのリリースはAPIの追加、オプション依存関係の移動、安全なデフォルトの変更が可能です。 小さな更新や大きな更新の前に変更点を確認しましょう。
その例は次のとおりです。
- バージョン4.0では
Encryptデフォルトがtrueに変更されました。 - バージョン5.0ではTDS 8.0用の
SqlConnectionEncryptOptionとEncrypt=Strictが導入されました。 - バージョン5.2では、対応するモダン.NETターゲットに
SqlBatchが導入されました。 - バージョン7.0では、ドライバー提供のMicrosoft Entra認証が
Microsoft.Data.SqlClient.Extensions.Azureに移行されました。
リリース ノートへのリンクとアップグレードの概要については、Microsoft.Data.SqlClient の新機能をご覧ください。
関連する名前空間とパッケージ
一部の機能はメイン名前空間外の型やオプションパッケージを使用します。
| 名前空間またはパッケージ | Purpose |
|---|---|
Microsoft.Data.SqlClient.Server |
SqlDataRecordおよびSqlMetaDataのSqlClient実装。 |
Microsoft.Data.SqlTypes |
SqlFileStream、SqlJson、SqlVector<T>などのSqlClient固有のタイプです。 |
Microsoft.Data.SqlClient.Diagnostics |
厳密に型指定された診断イベントのペイロード。 |
Microsoft.Data.SqlClient.Extensions.Azure |
バージョン 7.0 以降のドライバーによって提供される Microsoft Entra 認証 |
Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider |
Always Encrypted 向けの Azure Key Vault 統合。 |
名前空間だけでパッケージ要件を推測しないでください。 特集記事と、使用するドライバーバージョンのNuGetパッケージ依存情報に従ってください。