次の方法で共有


データベース プロバイダー

Entity Framework Core は、データベース プロバイダーと呼ばれるプラグイン ライブラリを通じて多数の異なるデータベースにアクセスできます。

現在のプロバイダー

Important

EF Core プロバイダーは、さまざまなソースによってビルドされます。 一部のプロバイダーは、Microsoft Entity Framework Core プロジェクトの一部として保守管理されていません。 プロバイダーの利用を検討するとき、要件に合うよう、品質、使用許諾、サポートなどを必ず評価してください。 また、バージョンの互換性情報の詳細について、各プロバイダーのドキュメントを確認してください。

Important

EF Core プロバイダーは、通常、メジャー バージョン間では機能しません。 たとえば、EF Core 8 用にリリースされたプロバイダーは、EF Core 9 では動作しません。

NuGet パッケージ サポートされているデータベース エンジン メンテナンス/仕入先 メモ/要件 対象の EF Core 便利なリンク
Microsoft.EntityFrameworkCore.SqlServer Azure SQL、SQL Server 2012 以降、Azure Synapse Analytics EF Core プロジェクト (Microsoft) 8, 9, 10 docs
Microsoft.EntityFrameworkCore.Sqlite SQLite 3.46.1 以降 EF Core プロジェクト (Microsoft) 8, 9, 10 docs
Microsoft.EntityFrameworkCore.InMemory EF Core In-Memory データベース EF Core プロジェクト (Microsoft) Limitations 8, 9, 10 docs
Microsoft.EntityFrameworkCore.Cosmos Azure Cosmos DB SQL API EF Core プロジェクト (Microsoft) 8, 9, 10 docs
Npgsql.EntityFrameworkCore.PostgreSQL PostgreSQL Npgsql 開発チーム 8, 9 docs
Pomelo.EntityFrameworkCore.MySql MySQL、MariaDB Pomelo Foundation プロジェクト 8, 9 readme
MySql.EntityFrameworkCore MySQL MySQL プロジェクト(Oracle) 8, 9 docs
Oracle.EntityFrameworkCore Oracle DB 19c 以降 Oracle 8, 9, 10 docs
MongoDB.EntityFrameworkCore MongoDB MongoDB 8 docs
Couchbase.EntityFrameworkCore Couchbase Couchbase 8, 9 docs
Devart.Data.MySql.EFCore MySQL 5 以降 DevArt Paid 8, 9 docs
Devart.Data.Oracle.EFCore Oracle DB 9.2.0.4 以降 DevArt Paid 8, 9 docs
Devart.Data.PostgreSql.EFCore PostgreSQL 8.0 以降 DevArt Paid 8, 9 docs
Devart.Data.SQLite.EFCore SQLite 3 以降 DevArt Paid 8, 9 docs
Devart.Data.DB2.EFCore DB2 DevArt Paid 8, 9 docs
Devart.Data.Bigcommerce.EFCore BigCommerce DevArt Paid 8, 9 docs
Devart.Data.Dynamics.EFCore マイクロソフト ダイナミクス 365 DevArt Paid 8, 9 docs
Devart.Data.FreshBooks.EFCore FreshBooks DevArt Paid 8, 9 docs
Devart.Data.Magento.EFCore Magento DevArt Paid 8, 9 docs
Devart.Data.MailChimp.EFCore Mailchimp DevArt Paid 8, 9 docs
Devart.Data.QuickBooks.EFCore QuickBooks DevArt Paid 8, 9 docs
Devart.Data.Salesforce.EFCore Salesforce DevArt Paid 8, 9 docs
Devart.Data.ExactTarget.EFCore Salesforce MC (ExactTarget) DevArt Paid 8, 9 docs
Devart.Data.Sugar.EFCore SugarCRM DevArt Paid 8, 9 docs
Devart.Data.Zoho.EFCore Zoho CRM DevArt Paid 8, 9 docs
Devart.Data.ZohoBooks.EFCore Zoho Books DevArt Paid 8, 9 docs
Devart.Data.ZohoDesk.EFCore Zoho Desk DevArt Paid 8, 9 docs
MASES.EntityFrameworkCore.KNet Apache Kafka MASES グループ 試用版、サブスクリプション 8 docs
InterBase InterBase InterBase 8 docs
FirebirdSql.EntityFrameworkCore.Firebird Firebird 3.0 以降 Jiří Činčura 8 docs
IBM.EntityFrameworkCore Db2、Informix IBM 有料、ウィンドウズ 8 始め方
IBM.EntityFrameworkCore-lnx Db2、Informix IBM 有料版、Linux 8 始め方
IBM.EntityFrameworkCore-osx Db2、Informix IBM 有料、macOS 8 始め方
EntityFrameworkCore.Jet Microsoft Access ファイル CirrusRedOrg Windows 8, 9 readme
Google.Cloud.EntityFrameworkCore.Spanner Google Cloud スパナ Cloud Spanner のエコシステム 8 tutorial
Teradata.EntityFrameworkCore Teradata データベース 16.10 以上 Teradata 3 website
FileContextCore ファイルにデータを格納 モリス・ジャナツェク 開発用 3 readme
FileBaseContext テーブルをファイルに格納する k.D.g 開発用 8, 9, 10 readme
EntityFrameworkCore.SqlServerCompact35 SQL Server Compact 3.5 Erik Ejlskov Jensen .NET Framework 2 wiki
EntityFrameworkCore.SqlServerCompact40 SQL Server Compact 4.0 Erik Ejlskov Jensen .NET Framework 2 wiki
EntityFrameworkCore.OpenEdge Progress OpenEdge Alex Wiese 2 readme
EFCore.Snowflake Snowflake Krzysztof Sielaff 8 readme

データベース プロバイダーをアプリケーションに追加する

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 パッケージとして配布されます。

Important

EF Core の新しい修正プログラムのバージョンがリリースされるときには、多くの場合 Microsoft.EntityFrameworkCore.Relational パッケージの更新プログラムが含まれます。 ユーザーがリレーショナル データベース プロバイダーを追加するとき、このパッケージは、アプリケーション依存関係が推移的になります。 しかし、多くのプロバイダーが EF Core から独立してリリースされ、そのパッケージの新しい修正プログラムのバージョンに依存するように更新されないことがあります。 すべてのバグ修正が確実に取得されるようにするために、Microsoft.EntityFrameworkCore.Relational の修正プログラム バージョンをアプリケーションの直接の依存関係として追加することをお勧めします。