Proveedores de bases de datos

Entity Framework Core puede tener acceso a muchas bases de datos diferentes a través de bibliotecas de complementos denominadas proveedores de bases de datos.

Proveedores actuales

Importante

Los proveedores de EF Core se componen de una serie de orígenes. No todos los proveedores se mantienen como parte del proyecto Entity Framework Core de Microsoft. Al considerar un proveedor, evalúe la calidad, las licencias, el soporte técnico, etc. a fin de asegurarse de que satisface los requisitos. Además, asegúrese de revisar la documentación de cada proveedor para obtener información detallada de compatibilidad de versiones.

Importante

Normalmente, los proveedores de EF Core no funcionan en las versiones principales. Por ejemplo, un proveedor publicado para EF Core 7 no funcionará con EF Core 8.

Paquete NuGet Motores de base de datos compatibles Mantenedor o proveedor Notas o requisitos Para EF Core Vínculos útiles
Microsoft.EntityFrameworkCore.SqlServer Azure SQL y SQL Server 2012 en adelante Proyecto EF Core (Microsoft) 6, 7, 8 Documentación
Microsoft.EntityFrameworkCore.Sqlite De SQLite 3.7 en adelante Proyecto EF Core (Microsoft) 6, 7, 8 Documentación
Microsoft.EntityFrameworkCore.InMemory Base de datos en memoria de EF Core Proyecto EF Core (Microsoft) Limitaciones 6, 7, 8 Documentación
Microsoft.EntityFrameworkCore.Cosmos API de SQL de Azure Cosmos DB Proyecto EF Core (Microsoft) 6, 7, 8 Documentación
Npgsql.EntityFrameworkCore.PostgreSQL PostgreSQL Equipo de desarrollo de Npgsql 6, 7, 8 Documentación
Pomelo.EntityFrameworkCore.MySql MySQL, MariaDB Proyecto Pomelo Foundation 6, 7, 8 Archivo Léame
MySql.EntityFrameworkCore MySQL Proyecto MySQL (Oracle) 6, 7 Documentación
Oracle.EntityFrameworkCore Oracle DB 11.2 y versiones posteriores Oracle 6, 7 Sitio web
MongoDB.EntityFrameworkCore MongoDB MongoDB Actualmente en versión preliminar 7 Documentación
Devart.Data.MySql.EFCore De MySQL 5 en adelante DevArt Pagado 6, 7, 8 Documentación
Devart.Data.Oracle.EFCore Oracle DB 9.2.0.4 y versiones posteriores DevArt Pagado 6, 7, 8 Documentación
Devart.Data.PostgreSql.EFCore De PostgreSQL 8.0 en adelante DevArt Pagado 6, 7, 8 Documentación
Devart.Data.SQLite.EFCore De SQLite 3 en adelante DevArt Pagado 6, 7, 8 Documentación
Devart.Data.DB2.EFCore DB2 DevArt Pagado 6, 7, 8 Documentación
Devart.Data.Bigcommerce.EFCore BigCommerce DevArt Pagado 6, 7, 8 Documentación
Devart.Data.Dynamics.EFCore Microsoft Dynamics 365 DevArt Pagado 6, 7, 8 Documentación
Devart.Data.FreshBooks.EFCore FreshBooks DevArt Pagado 6, 7, 8 Documentación
Devart.Data.Magento.EFCore Magento DevArt Pagado 6, 7, 8 Documentación
Devart.Data.MailChimp.EFCore Mailchimp DevArt Pagado 6, 7, 8 Documentación
Devart.Data.QuickBooks.EFCore QuickBooks DevArt Pagado 6, 7, 8 Documentación
Devart.Data.Salesforce.EFCore Salesforce DevArt Pagado 6, 7, 8 Documentación
Devart.Data.ExactTarget.EFCore Salesforce MC (ExactTarget) DevArt Pagado 6, 7, 8 Documentación
Devart.Data.Sugar.EFCore SugarCRM DevArt Pagado 6, 7, 8 Documentación
Devart.Data.Zoho.EFCore Zoho CRM DevArt Pagado 6, 7, 8 Documentación
MASES.EntityFrameworkCore.KNet Apache Kafka Grupo MASES Prueba, suscripción 6, 7, 8 Documentación
InterBase InterBase InterBase 6 Documentación
FirebirdSql.EntityFrameworkCore.Firebird A partir de Firebird 3.0 Jiří Činčura 7 Documentación
IBM.EntityFrameworkCore Db2, Informix IBM De pago, Windows 6 introducción
IBM.EntityFrameworkCore-lnx Db2, Informix IBM De pago, Linux 6 introducción
IBM.EntityFrameworkCore-osx Db2, Informix IBM De pago, macOS 6 introducción
EntityFrameworkCore.Jet Archivos de Microsoft Access CirrusRedOrg Windows 6, 7, 8 (versión preliminar) Archivo Léame
Google.Cloud.EntityFrameworkCore.Spanner Google Cloud Spanner Ecosistema de Cloud Spanner Actualmente en versión preliminar 6 tutorial
Teradata.EntityFrameworkCore Teradata Database 16.10 en adelante Teradata 3 Sitio web
FileContextCore Almacena datos en archivos. Morris Janatzek Con fines de desarrollo. 3 Archivo Léame
FileBaseContext Almacena tablas en archivos k.D.g Con fines de desarrollo. 7, 8 Archivo Léame
EntityFrameworkCore.SqlServerCompact35 SQL Server Compact 3,5 Erik Ejlskov Jensen .NET Framework 2 Wiki
EntityFrameworkCore.SqlServerCompact40 SQL Server Compact 4.0 Erik Ejlskov Jensen .NET Framework 2 Wiki
EntityFrameworkCore.OpenEdge Progress OpenEdge Alex Wiese 2 Archivo Léame

Agregar un proveedor de bases de datos a la aplicación

La mayoría de los proveedores de bases de datos para EF Core se distribuyen como paquetes NuGet y se pueden instalar siguiendo estos pasos:

dotnet add package provider_package_name

Una vez instalado, se configurará el proveedor en su DbContext, ya sea en el método OnConfiguring o el método AddDbContext si se usa un contenedor de inserción de dependencias. Por ejemplo, la línea siguiente configura el proveedor de SQL Server con la cadena de conexión pasada:

optionsBuilder.UseSqlServer(
    "Server=(localdb)\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;");

Los proveedores de bases de datos pueden ampliar EF Core para habilitar una funcionalidad única para bases de datos específicas. Algunos conceptos son comunes a la mayoría de las bases de datos y se incluyen en los componentes principales de EF Core. Estos conceptos incluyen la expresión de consultas en LINQ, las transacciones y el seguimiento de cambios en objetos una vez cargados desde la base de datos. Algunos conceptos son específicos de un proveedor determinado. Por ejemplo, el proveedor de SQL Server permite configurar tablas optimizadas para memoria (una característica específica de SQL Server). Otros conceptos son específicos de una clase de proveedores. Por ejemplo, los proveedores de EF Core para bases de datos relacionales se basan en la biblioteca común Microsoft.EntityFrameworkCore.Relational, que proporciona API para configurar asignaciones de tabla y columna, restricciones de clave externa, etc. Los proveedores normalmente se distribuyen como paquetes NuGet.

Importante

Cuando se publica una nueva versión de revisión de EF Core, suele incluir actualizaciones del paquete Microsoft.EntityFrameworkCore.Relational. Cuando se agrega un proveedor de bases de datos relacional, este paquete se convierte en una dependencia transitiva de la aplicación. Pero muchos proveedores se publican independientemente de EF Core y es posible que no puedan actualizarse para que se basen en la versión de revisión más reciente de ese paquete. A fin de asegurarse de que obtendrá todas las correcciones de errores, se recomienda agregar la versión de revisión de Microsoft.EntityFrameworkCore.Relational como dependencia directa de la aplicación.