資料庫提供者
Entity Framework Core 能夠透過稱為資料庫提供者的外掛程式程式庫存取各種不同的資料庫。
目前的提供者
重要
EF Core 提供者是透過各種來源所建置。 並非所有提供者都會維護為 Microsoft Entity Framework Core 專案的一部分。 考慮使用提供者時,請務必評估品質、授權、支援等項目,以確保其符合您的需求。 同時也務必檢閱每個提供者的文件以了解詳細的版本相容性資訊。
重要
EF Core 提供者通常無法跨主要版本運作。 例如,針對 EF Core 6 發行的提供者將無法與 EF Core 7 搭配運作。
將資料庫提供者新增至應用程式
EF Core 的大多數資料庫提供者會以 NuGet 套件形式發佈,可以安裝如下:
dotnet add package provider_package_name
若您使用相依性插入容器,請在安裝完成後以 OnConfiguring
方式或 AddDbContext
方式在 DbContext
中設定提供者。
例如,下列程式行會以傳遞的連接字串設定 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 獨立發行,所以可能不會更新為相依於該套件的較新修補程式版本。
為了確保您能夠修正所有 Bug,建議您將 Microsoft.EntityFrameworkCore.Relational
的修補程式版本新增為應用程式的直接相依性。