次の方法で共有


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

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 docs
Microsoft.EntityFrameworkCore.Sqlite SQLite 3.46.1 以降 EF Core プロジェクト (Microsoft) 8, 9 docs
Microsoft.EntityFrameworkCore.InMemory EF Core In-Memory データベース EF Core プロジェクト (Microsoft) 制限事項 8, 9 docs
Microsoft.EntityFrameworkCore.Cosmos Azure Cosmos DB SQL API EF Core プロジェクト (Microsoft) 8, 9 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 11.2 以降 Oracle 8, 9 Web サイト
MongoDB.EntityFrameworkCore MongoDB MongoDB 8 docs
Devart.Data.MySql.EFCore MySQL 5 以降 DevArt 有料 8, 9 docs
Devart.Data.Oracle.EFCore Oracle DB 9.2.0.4 以降 DevArt 有料 8, 9 docs
Devart.Data.PostgreSql.EFCore PostgreSQL 8.0 以降 DevArt 有料 8, 9 docs
Devart.Data.SQLite.EFCore SQLite 3 以降 DevArt 有料 8, 9 docs
Devart.Data.DB2.EFCore DB2 DevArt 有料 8, 9 docs
Devart.Data.Bigcommerce.EFCore BigCommerce DevArt 有料 8, 9 docs
Devart.Data.Dynamics.EFCore Microsoft Dynamics 365 DevArt 有料 8, 9 docs
Devart.Data.FreshBooks.EFCore FreshBooks DevArt 有料 8, 9 docs
Devart.Data.Magento.EFCore Magento DevArt 有料 8, 9 docs
Devart.Data.MailChimp.EFCore Mailchimp DevArt 有料 8, 9 docs
Devart.Data.QuickBooks.EFCore QuickBooks に設定する必要があります DevArt 有料 8, 9 docs
Devart.Data.Salesforce.EFCore セールスフォース DevArt 有料 8, 9 docs
Devart.Data.ExactTarget.EFCore Salesforce MC (ExactTarget) DevArt 有料 8, 9 docs
Devart.Data.Sugar.EFCore SugarCRM DevArt 有料 8, 9 docs
Devart.Data.Zoho.EFCore Zoho CRM DevArt 有料 8, 9 docs
Devart.Data.ZohoBooks.EFCore Zoho Books DevArt 有料 8, 9 docs
Devart.Data.ZohoDesk.EFCore Zoho Desk DevArt 有料 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 支払い済み、Windows 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 Spanner Cloud Spanner のエコシステム 現在プレビュー中 6 チュートリアル
Teradata.EntityFrameworkCore Teradata データベース 16.10 以上 Teradata 3 Web サイト
FileContextCore ファイルにデータを格納 Morris Janatzek 開発用 3 readme
FileBaseContext テーブルをファイルに格納する k.D.g 開発用 8, 9 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

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

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 の修正プログラム バージョンをアプリケーションの直接の依存関係として追加することをお勧めします。