共用方式為


資料庫提供者

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 記憶體內部資料庫 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 Microsoft Dynamics 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 書籍 DevArt Paid 8, 9 docs
Devart.Data.ZohoDesk.EFCore Zoho 管理台 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 付費;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 生態系統 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 埃裡克·埃耶爾斯科夫·詹森 .NET Framework 2 wiki
EntityFrameworkCore.SqlServerCompact40 SQL Server 精簡版 4.0 埃裡克·埃耶爾斯科夫·詹森 .NET Framework 2 wiki
EntityFrameworkCore.OpenEdge Progress OpenEdge 亞歷克斯·維斯 2 readme
EFCore.Snowflake Snowflake 克日什托夫·謝拉夫 8 readme
EFCore.Kusto Azure 資料總管 (Kusto) 阿納斯·伊斯梅爾·汗 8 readme
EntityFrameworkCore.Ydb 青年發展局 YDB團隊 9, 10 website

將資料庫提供者新增至應用程式

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 獨立發行,所以可能不會更新為相依於該套件的較新修補程式版本。 為了確保您能夠修正所有 Bug,建議您將 Microsoft.EntityFrameworkCore.Relational 的修補程式版本新增為應用程式的直接相依性。