EF Core 擴充通常需要在核心 EF 及提供者元件中加入邏輯。 這通常需要建立衍生元件,並在內部服務提供者中替換原始元件。 當多個擴充套件想更改同一個元件時,情況會變得複雜。 在這些情況下,我們提供外掛 API,允許多個擴充功能提供額外邏輯。
服務清單
以下是外掛式 API 的列表。
| Service | 說明 |
|---|---|
| ITypeMappingSourcePlugin | 新增 .NET 類型與原始儲存類型之間的映射。 |
| IRelationalTypeMappingSourcePlugin | 新增 .NET 類型與原始關聯式資料庫類型之間的映射。 |
| IConventionSetPlugin | 新增模型製作慣例。 |
| IMemberTranslatorPlugin | 新增 .NET 屬性的 SQL 轉換功能。 |
| IMethodCallTranslatorPlugin | 新增 .NET 方法的 SQL 轉換功能。 |
| IAggregateMethodCallTranslatorPlugin | 新增 .NET 可枚舉方法的 SQL 轉譯。 |
| IEvaluatableExpressionFilterPlugin | 強制伺服器進行某些表達式的評估。 |
| IProviderCodeGeneratorPlugin | Scaffolds 提供者與 DbContext 選項。 |
Examples
以下是一些利用這些 API 的擴充功能:
| 擴充功能 | 說明 |
|---|---|
| Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite | 新增 SpatiaLite 型別的型別映射與 SQL 轉換功能。 |
| Microsoft.EntityFrameworkCore.SqlServer.HierarchyId | 新增 SQL Server hierarchyid 型態的型別映射與 SQL 轉換。 |
| Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite | 新增 SQL Server 地理與幾何類型的類型映射與 SQL 轉換。 |
| EFCore.CheckConstraints | 新增關聯式資料庫檢查約束的模型建構慣例。 |
| EFCore.命名慣例 | 新增了用於替代關聯式資料庫資料表、欄位及限制名稱的模型建構慣例。 |