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. 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

Por lo general, los proveedores de EF Core funcionan en versiones secundarias, pero no en todas las versiones principales. Por ejemplo, un proveedor publicado para EF Core 2.1 debería funcionar con EF Core 2.2, pero no con EF Core 3.0.

Paquete NuGet Motores de base de datos compatibles Mantenedor o proveedor Notas o requisitos Creado para la versión Vínculos útiles
Microsoft.EntityFrameworkCore.SqlServer De SQL Server 2012 en adelante Proyecto EF Core (Microsoft) 6.0 Documentación
Microsoft.EntityFrameworkCore.Sqlite De SQLite 3.7 en adelante Proyecto EF Core (Microsoft) 6.0 Documentación
Microsoft.EntityFrameworkCore.InMemory Base de datos en memoria de EF Core Proyecto EF Core (Microsoft) Limitaciones 6.0 Documentación
Microsoft.EntityFrameworkCore.Cosmos API de SQL de Azure Cosmos DB Proyecto EF Core (Microsoft) 6.0 Documentación
Npgsql.EntityFrameworkCore.PostgreSQL PostgreSQL Equipo de desarrollo de Npgsql 6.0 Documentación
Pomelo.EntityFrameworkCore.MySql MySQL, MariaDB Proyecto Pomelo Foundation 6.0 Archivo Léame
MySql.EntityFrameworkCore MySQL Proyecto MySQL (Oracle) 6.0 Documentación
Oracle.EntityFrameworkCore Oracle DB 11.2 y versiones posteriores Oracle 6,0 Sitio web
Devart.Data.MySql.EFCore De MySQL 5 en adelante DevArt Pagado 6.0 Documentación
Devart.Data.Oracle.EFCore Oracle DB 9.2.0.4 y versiones posteriores DevArt Pagado 6.0 Documentación
Devart.Data.PostgreSql.EFCore De PostgreSQL 8.0 en adelante DevArt Pagado 6.0 Documentación
Devart.Data.SQLite.EFCore De SQLite 3 en adelante DevArt Pagado 6.0 Documentación
FirebirdSql.EntityFrameworkCore.Firebird A partir de Firebird 3.0 Jiří Činčura 6.0 Documentación
IBM.EntityFrameworkCore Db2, Informix IBM De pago, Windows 6,0 introducción
IBM.EntityFrameworkCore-lnx Db2, Informix IBM De pago, Linux 6,0 introducción
IBM.EntityFrameworkCore-osx Db2, Informix IBM De pago, macOS 6,0 introducción
EntityFrameworkCore.Jet Archivos de Microsoft Access Bubi 3.1 Archivo Léame
Teradata.EntityFrameworkCore Teradata Database 16.10 en adelante Teradata 3.1 Sitio web
Google.Cloud.EntityFrameworkCore.Spanner Google Cloud Spanner Ecosistema de Cloud Spanner Actualmente en versión preliminar 3.1 tutorial
FileContextCore Almacena datos en archivos. Morris Janatzek Con fines de desarrollo. 3.0 Archivo Léame
EntityFrameworkCore.SqlServerCompact35 SQL Server Compact 3,5 Erik Ejlskov Jensen .NET Framework 2.2 Wiki
EntityFrameworkCore.SqlServerCompact40 SQL Server Compact 4.0 Erik Ejlskov Jensen .NET Framework 2.2 Wiki
EntityFrameworkCore.OpenEdge Progress OpenEdge Alex Wiese 2.1 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.