データベース プロバイダー
Entity Framework Core は、データベース プロバイダーと呼ばれるプラグイン ライブラリを通じて多数の異なるデータベースにアクセスできます。
現在のプロバイダー
重要
EF Core プロバイダーは、さまざまなソースによってビルドされます。 一部のプロバイダーは、Microsoft Entity Framework Core プロジェクトの一部として保守管理されていません。 プロバイダーの利用を検討するとき、要件に合うよう、品質、使用許諾、サポートなどを必ず評価してください。 また、バージョンの互換性情報の詳細について、各プロバイダーのドキュメントを確認してください。
重要
EF Core プロバイダーは、通常、メジャー バージョン間では機能しません。 たとえば、EF Core 7 用にリリースされたプロバイダーは、EF Core 8 では動作しません。
データベース プロバイダーをアプリケーションに追加する
EF Core のほとんどのデータベース プロバイダーは、NuGet パッケージとして配布され、次のようにインストールできます。
dotnet add package provider_package_name
インストールされたら、DbContext
で、OnConfiguring
メソッド、または依存関係注入コンテナーを使用している場合は AddDbContext
メソッドを使用してプロバイダーを構成します。
たとえば、次の行は、渡された接続文字列を使用して、SQL Server プロバイダーを構成します。
optionsBuilder.UseSqlServer(
@"Server=(localdb)\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;");
データベース プロバイダーは、特定のデータベースに固有の機能を有効にするように EF Core を拡張できます。 いくつかの概念はほとんどのデータベースに共通しており、プライマリ EF Core コンポーネントに含まれています。 そのような概念には、LINQ のクエリの表現、トランザクション、データベースから読み込んだときのオブジェクトの変更追跡などがあります。
いくつかの概念は、特定のプロバイダーに固有のものです。 たとえば、SQL Server プロバイダーの場合、メモリが最適化されたテーブル (SQL Server 固有の機能) を構成できます。 その他の概念は、プロバイダーのクラスに固有のものです。
たとえば、リレーショナル データベースの EF Core プロバイダーの場合、一般的な Microsoft.EntityFrameworkCore.Relational
ライブラリに基づいてビルドします。このライブラリは、テーブルと列のマッピングや外部キー制約などを構成するための API を提供します。プロバイダーは通常、NuGet パッケージとして配布されます。
重要
EF Core の新しい修正プログラムのバージョンがリリースされるときには、多くの場合 Microsoft.EntityFrameworkCore.Relational
パッケージの更新プログラムが含まれます。
ユーザーがリレーショナル データベース プロバイダーを追加するとき、このパッケージは、アプリケーション依存関係が推移的になります。
しかし、多くのプロバイダーが EF Core から独立してリリースされ、そのパッケージの新しい修正プログラムのバージョンに依存するように更新されないことがあります。
すべてのバグ修正が確実に取得されるようにするために、Microsoft.EntityFrameworkCore.Relational
の修正プログラム バージョンをアプリケーションの直接の依存関係として追加することをお勧めします。
.NET