API de complementos

Las extensiones de EF Core a menudo requieren agregar lógica a los componentes principales de EF y a los componentes de proveedores. Esto normalmente requiere crear un componente derivado y reemplazar el original en el proveedor de servicios interno. Esto se complica cuando varias extensiones quieren cambiar el mismo componente. En estos casos, proporcionamos API de complemento para permitir que varias extensiones proporcionen lógica adicional.

Lista de servicios

A continuación se muestra una lista de las API del complemento.

Service Descripción
ITypeMappingSourcePlugin Agrega asignaciones entre los tipos de .NET y los tipos de almacenamiento primitivos.
IRelationalTypeMappingSourcePlugin Agrega mapeos entre tipos de .NET y tipos primitivos de bases de datos relacionales.
IConventionSetPlugin Agrega convenciones de creación de modelos.
IMemberTranslatorPlugin Agrega traducciones de SQL para las propiedades de .NET.
IMethodCallTranslatorPlugin Agrega traducciones de SQL para métodos de .NET.
IAggregateMethodCallTranslatorPlugin Agrega traducciones sql para métodos enumerables de .NET.
IEvaluatableExpressionFilterPlugin Fuerza la eval del servidor de determinadas expresiones.
IProviderCodeGeneratorPlugin Proveedor de scaffolds y opciones de DbContext.

Ejemplos

Estas son algunas extensiones que usan estas API:

Extension Descripción
Microsoft.EntityFrameworkCore.Sqlite.NetTopologySuite Agrega asignaciones de tipos y traducciones SQL para los tipos de SpatiaLite.
Microsoft.EntityFrameworkCore.SqlServer.HierarchyId Agrega mapeos de tipos y traducciones de SQL para el tipo hierarchyid de SQL Server.
Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite Agrega asignaciones de tipos y traducciones de SQL para los tipos de geografía y geometría de SQL Server.
EFCore.CheckConstraints Agrega convenciones de creación de modelos para restricciones de comprobación de bases de datos relacionales.
EFCore.NamingConventions Agrega convenciones de creación de modelos para nombres de tablas alternativas, columnas y restricciones de bases de datos relacionales.