插件 API

EF Core 扩展通常需要将逻辑添加到核心 EF 和供应商组件中。 这通常需要创建派生组件并替换内部服务提供商中的原始组件。 当多个扩展想要更改同一组件时,这变得很复杂。 在这些情况下,我们提供插件 API,以允许多个扩展提供其他逻辑。

服务列表

下面是插件 API 的列表。

Service 说明
ITypeMappingSourcePlugin 在 .NET 类型和基元存储类型之间添加映射。
IRelationalTypeMappingSourcePlugin 在 .NET 类型和基元关系数据库类型之间添加映射。
IConventionSetPlugin 添加模型构建约定。
IMemberTranslatorPlugin 为 .NET 属性添加 SQL 翻译。
IMethodCallTranslatorPlugin 为 .NET 方法添加 SQL 翻译。
IAggregateMethodCallTranslatorPlugin 为 .NET 可枚举方法添加 SQL 翻译。
IEvaluatableExpressionFilterPlugin 强制服务器端对某些表达式进行求值。
IProviderCodeGeneratorPlugin 基架提供程序和 DbContext 选项。

示例

下面是使用这些 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.NamingConventions 为备用关系数据库表、列和约束名称添加模型生成约定。