Entity Framework Core は、データベース プロバイダーと呼ばれるプラグイン ライブラリを通じて多数の異なるデータベースにアクセスできます。
現在のプロバイダー
重要
EF Core プロバイダーは、さまざまなソースによってビルドされます。 一部のプロバイダーは、Microsoft Entity Framework Core プロジェクトの一部として保守管理されていません。 プロバイダーの利用を検討するとき、要件に合うよう、品質、使用許諾、サポートなどを必ず評価してください。 また、バージョンの互換性情報の詳細について、各プロバイダーのドキュメントを確認してください。
重要
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 |
ドキュメント |
Microsoft.EntityFrameworkCore.Sqlite |
SQLite 3.46.1 以降 |
EF Core プロジェクト (Microsoft) |
|
8, 9 |
ドキュメント |
Microsoft.EntityFrameworkCore.InMemory |
EF Core In-Memory データベース |
EF Core プロジェクト (Microsoft) |
制限事項 |
8, 9 |
ドキュメント |
Microsoft.EntityFrameworkCore.Cosmos |
Azure Cosmos DB SQL API |
EF Core プロジェクト (Microsoft) |
|
8, 9 |
ドキュメント |
Npgsql.EntityFrameworkCore.PostgreSQL |
PostgreSQL |
Npgsql 開発チーム |
|
8, 9 |
ドキュメント |
Pomelo.EntityFrameworkCore.MySql |
MySQL、MariaDB |
Pomelo Foundation プロジェクト |
|
8, 9 |
readme |
MySql.EntityFrameworkCore |
MySQL |
MySQL プロジェクト(Oracle) |
|
8, 9 |
ドキュメント |
Oracle.EntityFrameworkCore |
Oracle DB 11.2 以降 |
オラクル |
|
8, 9 |
Web サイト |
MongoDB.EntityFrameworkCore |
MongoDB |
MongoDB |
|
8 |
ドキュメント |
Couchbase.EntityFrameworkCore |
カウチベース (Couchbase) |
Couchbase |
|
8, 9 |
ドキュメント |
Devart.Data.MySql.EFCore |
MySQL 5 以降 |
DevArt |
有料 |
8, 9 |
ドキュメント |
Devart.Data.Oracle.EFCore |
Oracle DB 9.2.0.4 以降 |
DevArt |
有料 |
8, 9 |
ドキュメント |
Devart.Data.PostgreSql.EFCore |
PostgreSQL 8.0 以降 |
DevArt |
有料 |
8, 9 |
ドキュメント |
Devart.Data.SQLite.EFCore |
SQLite 3 以降 |
DevArt |
有料 |
8, 9 |
ドキュメント |
Devart.Data.DB2.EFCore |
DB2 |
DevArt |
有料 |
8, 9 |
ドキュメント |
Devart.Data.Bigcommerce.EFCore |
BigCommerce |
DevArt |
有料 |
8, 9 |
ドキュメント |
Devart.Data.Dynamics.EFCore |
マイクロソフト ダイナミクス 365 |
DevArt |
有料 |
8, 9 |
ドキュメント |
Devart.Data.FreshBooks.EFCore |
FreshBooks |
DevArt |
有料 |
8, 9 |
ドキュメント |
Devart.Data.Magento.EFCore |
Magento |
DevArt |
有料 |
8, 9 |
ドキュメント |
Devart.Data.MailChimp.EFCore |
Mailchimp |
DevArt |
有料 |
8, 9 |
ドキュメント |
Devart.Data.QuickBooks.EFCore |
QuickBooks に設定する必要があります |
DevArt |
有料 |
8, 9 |
ドキュメント |
Devart.Data.Salesforce.EFCore |
セールスフォース |
DevArt |
有料 |
8, 9 |
ドキュメント |
Devart.Data.ExactTarget.EFCore |
Salesforce MC (ExactTarget) |
DevArt |
有料 |
8, 9 |
ドキュメント |
Devart.Data.Sugar.EFCore |
SugarCRM |
DevArt |
有料 |
8, 9 |
ドキュメント |
Devart.Data.Zoho.EFCore |
Zoho CRM |
DevArt |
有料 |
8, 9 |
ドキュメント |
Devart.Data.ZohoBooks.EFCore |
Zoho Books |
DevArt |
有料 |
8, 9 |
ドキュメント |
Devart.Data.ZohoDesk.EFCore |
Zoho Desk |
DevArt |
有料 |
8, 9 |
ドキュメント |
MASES。EntityFrameworkCore.KNet |
Apache Kafka |
MASES グループ |
試用版、サブスクリプション |
8 |
ドキュメント |
InterBase |
InterBase |
InterBase |
|
8 |
ドキュメント |
FirebirdSql.EntityFrameworkCore.Firebird |
Firebird 3.0 以降 |
Jiří Činčura |
|
8 |
ドキュメント |
アイビーエム。EntityFrameworkCore |
Db2、Informix |
アイビーエム |
支払い済み、Windows |
8 |
概要 |
アイビーエム。EntityFrameworkCore-lnx |
Db2、Informix |
アイビーエム |
支払い済み、Linux |
8 |
概要 |
アイビーエム。EntityFrameworkCore-osx |
Db2、Informix |
アイビーエム |
支払い済み、macOS |
8 |
概要 |
EntityFrameworkCore.Jet |
Microsoft Access ファイル |
CirrusRedOrg |
ウィンドウズ |
8, 9 |
readme |
Google.Cloud.EntityFrameworkCore.Spanner |
Google Cloud スパナー |
Cloud Spanner のエコシステム |
|
8 |
チュートリアル |
Teradata.EntityFrameworkCore |
Teradata データベース 16.10 以上 |
Teradata |
|
3 |
Web サイト |
FileContextCore |
ファイルにデータを格納 |
モリス・ジャナツェク |
開発用 |
3 |
readme |
FileBaseContext |
テーブルをファイルに格納する |
k.D.g |
開発用 |
8, 9 |
readme |
EntityFrameworkCore.SqlServerCompact35 |
SQL Server Compact 3.5 |
Erik Ejlskov Jensen |
.NET Framework |
2 |
ウィキ |
EntityFrameworkCore.SqlServerCompact40 |
SQL Server Compact 4.0 |
Erik Ejlskov Jensen |
.NET Framework |
2 |
ウィキ |
EntityFrameworkCore.OpenEdge |
Progress OpenEdge |
Alex Wiese |
|
2 |
readme |
EFCore.Snowflake |
雪片 |
Krzysztof Sielaff |
|
8 |
readme |
データベース プロバイダーをアプリケーションに追加する
EF Core のほとんどのデータベース プロバイダーは、NuGet パッケージとして配布され、次のようにインストールできます。
dotnet add package provider_package_name
install-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
の修正プログラム バージョンをアプリケーションの直接の依存関係として追加することをお勧めします。