Microsoft。Data.Sqlクライアント名前空間と互換性

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;

ほとんどのアプリケーションは SqlConnectionSqlCommandSqlParameterSqlDataReaderSqlTransactionを使用します。 完全な公開サーフェスについては、Microsoft.Data.SqlClient API参照を参照してください。

ADO.NETとの関係

Microsoft.Data.SqlClient は、DbConnection のプロバイダー非依存の型 (これには DbCommandDbDataReaderDbTransactionSystem.Data.Common が含まれます) を実装します。 また、以下のようなSQL Server固有のAPIも提供しています:

  • SqlBulkCopy
  • SqlBatch
  • SqlConnectionStringBuilder
  • SqlConfigurableRetryFactory
  • SqlDependency
  • 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.SqlConnectionMicrosoft.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用の SqlConnectionEncryptOptionEncrypt=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 SqlFileStreamSqlJsonSqlVector<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パッケージ依存情報に従ってください。