Share via


EF Core NuGet 套件

Entity Framework Core (EF Core) 隨附為 NuGet 套件。 應用程式所需的套件取決於:

  • 正在使用的資料庫系統類型(SQL Server、SQLite 等)
  • 所需的 EF Core 功能

安裝套件的一般程式如下:

如需開始使用 EF Core 的說明,請參閱 Entity Framework Core 使用者入門教學課程。

套件版本

請務必安裝 Microsoft 隨附之所有 EF Core 套件的相同版本。 例如,如果已安裝 Microsoft.EntityFrameworkCore.SqlServer 5.0.3 版,則所有其他 Microsoft.EntityFrameworkCore.* 套件也必須位於 5.0.3。

也請確定任何外部套件都與所使用的 EF Core 版本相容。 特別是,檢查外部資料庫提供者是否支援您使用的 EF Core 版本。 新的 EF Core 主要版本通常需要更新的資料庫提供者。

警告

NuGet 不會強制執行一致的套件版本。 請務必仔細檢查您在檔案或對等專案中參考 .csproj 的套件版本。

資料庫提供者

EF Core 透過使用「資料庫提供者」支援不同的資料庫系統。 每個系統都有自己的資料庫提供者,其隨附為 NuGet 套件。 應用程式應該安裝一或多個這些提供者套件。

下表列出常見的資料庫提供者。 如需更完整的可用提供者清單,請參閱 資料庫提供者

資料庫系統 套件
SQL Server 和 SQL Azure Microsoft.EntityFrameworkCore.SqlServer
SQLite Microsoft.EntityFrameworkCore.Sqlite
Azure Cosmos DB Microsoft.EntityFrameworkCore.Cosmos
PostgreSQL Npgsql.EntityFrameworkCore.PostgreSQL*
MySQL Pomelo.EntityFrameworkCore.MySql*
EF Core 記憶體內部資料庫** Microsoft.EntityFrameworkCore.InMemory

*這些是社群開發的熱門、高品質、開放原始碼提供者。 列出的其他提供者是由 Microsoft 提供。

**請仔細考慮是否要使用記憶體內部提供者。 它並非專為生產環境使用而設計,也可能不是 測試 的最佳解決方案。

工具

從現有的資料庫 使用 EF Core 移轉 反向工程 (Scaffolding) 的工具 需要安裝適當的工具套件:

如需使用 EF Core 工具的詳細資訊,請參閱 Entity Framework Core 工具參考 ,包括如何在專案中或全域正確安裝 dotnet-ef 此工具。

提示

根據預設,Microsoft.EntityFrameworkCore.Design 套件會以不會與您的應用程式一起部署的方式進行安裝。 這也表示其類型無法可轉移地用於其他專案。 如果您需要存取此套件中的類型,請使用檔案 .csproj 中的一般 PackageReference 或對等專案。 如需詳細資訊,請參閱 設計階段服務

延伸模組套件

Microsoft 和協力廠商都以 NuGet 套件的形式發行 EF Core 有許多擴充功能。 常用的套件包括:

功能 套件 其他相依性
延遲載入和變更追蹤的 Proxy Microsoft.EntityFrameworkCore.Proxies Castle.Core
SQL Server 的空間支援 Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite NetTopologySuite NetTopologySuite.IO.SqlServerBytes
SQLite 的空間支援 Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite NetTopologySuite 和 NetTopologySuite.IO.SpatiaLite
PostgreSQL 的空間支援 Npgsql.EntityFrameworkCore.PostgreSQL.NetTopologySuite NetTopologySuite NetTopologySuite.IO.PostGIS (透過 Npgsql.NetTopologySuite
MySQL 的空間支援 Pomelo.EntityFrameworkCore.MySql.NetTopologySuite NetTopologySuite

其他套件

其他 EF Core 套件會提取為資料庫提供者套件的相依性。 不過,您可能想要新增這些套件的明確套件參考,以便 NuGet 在發行新版本時提供通知。

功能 套件
EF Core 基本功能 Microsoft.EntityFrameworkCore
常見的關係資料庫功能 Microsoft.EntityFrameworkCore.Relational
EF Core 屬性的輕量型套件等等。 Microsoft.EntityFrameworkCore.Abstractions
適用于 EF Core 使用量的 Roslyn 程式碼分析器 Microsoft.EntityFrameworkCore.Analyzers
沒有原生 SQLite 相依性 EF Core SQLite 提供者 Microsoft.EntityFrameworkCore.Sqlite.Core

資料庫提供者測試的套件

下列套件可用來測試外部 GitHub 存放庫內建的資料庫提供者。 如需範例,請參閱 efcore.pg Pomelo.EntityFrameworkCore.MySql 。 應用程式不應該安裝這些套件。

功能 套件
測試任何資料庫提供者 Microsoft.EntityFrameworkCore.Specification.Tests
關係資料庫提供者的測試 Microsoft.EntityFrameworkCore.Relational.Specification.Tests

過時的套件

請勿 安裝下列過時的套件,如果這些專案目前已安裝在您的專案中,請將其移除:

  • Microsoft.EntityFrameworkCore.Relational.Design
  • Microsoft.EntityFrameworkCore.Tools.DotNet
  • Microsoft.EntityFrameworkCore.SqlServer.Design
  • Microsoft.EntityFrameworkCore.Sqlite.Design
  • Microsoft.EntityFrameworkCore.Relational.Design.Specification.Tests