Provedores de Banco de DadosDatabase Providers

O Entity Framework Core pode acessar muitos bancos de dados diferentes por meio de bibliotecas de plug-in chamadas de provedores de banco de dados.Entity Framework Core can access many different databases through plug-in libraries called database providers.

Provedores atuaisCurrent providers

Importante

Os provedores do EF Core são criados por uma variedade de origens.EF Core providers are built by a variety of sources. Nem todos os provedores são mantidos como parte do Projeto do Entity Framework Core.Not all providers are maintained as part of the Entity Framework Core Project. Ao considerar um provedor, avalie a qualidade, o licenciamento, o suporte etc. para garantir que ele cumpra os seus requisitos.When considering a provider, be sure to evaluate quality, licensing, support, etc. to ensure they meet your requirements. Examine também a documentação de cada provedor para obter informações detalhadas de compatibilidade de versão.Also make sure you review each provider's documentation for detailed version compatibility information.

Pacote NuGetNuGet Package Mecanismos de banco de dados com suporteSupported database engines Mantenedor / fornecedorMaintainer / Vendor Notas / requisitosNotes / Requirements Links úteisUseful links
Microsoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore.SqlServer SQL Server 2008 em dianteSQL Server 2008 onwards Projeto EF Core (Microsoft)EF Core Project (Microsoft) docsdocs
Microsoft.EntityFrameworkCore.SqliteMicrosoft.EntityFrameworkCore.Sqlite SQLite 3.7 em dianteSQLite 3.7 onwards Projeto EF Core (Microsoft)EF Core Project (Microsoft) docsdocs
Microsoft.EntityFrameworkCore.InMemoryMicrosoft.EntityFrameworkCore.InMemory Banco de dados em memória do EF CoreEF Core in-memory database Projeto EF Core (Microsoft)EF Core Project (Microsoft) Somente para testeFor testing only docsdocs
Microsoft.EntityFrameworkCore.CosmosMicrosoft.EntityFrameworkCore.Cosmos API do SQL do Azure Cosmos DBAzure Cosmos DB SQL API Projeto EF Core (Microsoft)EF Core Project (Microsoft) Somente visualizaçãoPreview only blogblog
Npgsql.EntityFrameworkCore.PostgreSQLNpgsql.EntityFrameworkCore.PostgreSQL PostgreSQLPostgreSQL Equipe de desenvolvimento do NpgsqlNpgsql Development Team docsdocs
Pomelo.EntityFrameworkCore.MySqlPomelo.EntityFrameworkCore.MySql MySQL, MariaDBMySQL, MariaDB Pomelo Foundation ProjectPomelo Foundation Project Leiamereadme
Pomelo.EntityFrameworkCore.MyCatPomelo.EntityFrameworkCore.MyCat Servidor MyCATMyCAT Server Pomelo Foundation ProjectPomelo Foundation Project Somente pré-lançamentoPrerelease only Leiamereadme
EntityFrameworkCore.SqlServerCompact40EntityFrameworkCore.SqlServerCompact40 SQL Server Compact 4.0SQL Server Compact 4.0 Erik Ejlskov JensenErik Ejlskov Jensen .NET Framework.NET Framework wikiwiki
EntityFrameworkCore.SqlServerCompact35EntityFrameworkCore.SqlServerCompact35 SQL Server Compact 3,5SQL Server Compact 3.5 Erik Ejlskov JensenErik Ejlskov Jensen .NET Framework.NET Framework wikiwiki
FirebirdSql.EntityFrameworkCore.FirebirdFirebirdSql.EntityFrameworkCore.Firebird Firebird 2.5 e 3.xFirebird 2.5 and 3.x Jiří ČinčuraJiří Činčura docsdocs
EntityFrameworkCore.FirebirdSqlEntityFrameworkCore.FirebirdSql Firebird 2.5 e 3.xFirebird 2.5 and 3.x Rafael AlmeidaRafael Almeida wikiwiki
MySql.Data.EntityFrameworkCoreMySql.Data.EntityFrameworkCore MySQLMySQL Projeto MySQL (Oracle)MySQL project (Oracle) docsdocs
Oracle.EntityFrameworkCoreOracle.EntityFrameworkCore Oracle Database 11.2 em dianteOracle DB 11.2 onwards OracleOracle Pré-lançamentoPrerelease sitewebsite
IBM.EntityFrameworkCoreIBM.EntityFrameworkCore Db2, InformixDb2, Informix IBMIBM Versão do WindowsWindows version blogblog
IBM.EntityFrameworkCore-lnxIBM.EntityFrameworkCore-lnx Db2, InformixDb2, Informix IBMIBM Versão do LinuxLinux version blogblog
IBM.EntityFrameworkCore-osxIBM.EntityFrameworkCore-osx Db2, InformixDb2, Informix IBMIBM Versão do macOSmacOS version blogblog
EntityFrameworkCore.JetEntityFrameworkCore.Jet Arquivos do Microsoft AccessMicrosoft Access files BubiBubi .NET Framework.NET Framework Leiamereadme
EntityFrameworkCore.OpenEdgeEntityFrameworkCore.OpenEdge Progress OpenEdgeProgress OpenEdge Alex WieseAlex Wiese Leiamereadme
Devart.Data.Oracle.EFCoreDevart.Data.Oracle.EFCore Oracle Database 9.2.0.4 em dianteOracle DB 9.2.0.4 onwards DevArtDevArt PagoPaid docsdocs
Devart.Data.PostgreSql.EFCoreDevart.Data.PostgreSql.EFCore PostgreSQL 8.0 em diantePostgreSQL 8.0 onwards DevArtDevArt PagoPaid docsdocs
Devart.Data.SQLite.EFCoreDevart.Data.SQLite.EFCore SQLite 3 em dianteSQLite 3 onwards DevArtDevArt PagoPaid docsdocs
Devart.Data.MySql.EFCoreDevart.Data.MySql.EFCore MySQL 5 em dianteMySQL 5 onwards DevArtDevArt PagoPaid docsdocs

Provedores futurosFuture Providers

Cosmos DBCosmos DB

Estamos desenvolvendo um provedor do EF Core para a API do SQL no Cosmos DB.We have been developing an EF Core provider for the SQL API in Cosmos DB. Esse será o primeiro provedor de banco de dados completo orientado a documentos produzido por nós, e os ensinamentos deste exercício informarão as melhorias no design da versão subsequente do EF Core e, possivelmente, outros provedores não relacionais.This will be the first complete document-oriented database provider we have produced, and the learnings from this exercise are going to inform improvements in the design of future releases of EF Core and possibly other non-relational providers. Uma visualização está disponível na Galeria do NuGet.A preview is available on the NuGet Gallery.

Provedor direto OracleOracle first-party provider

A equipe do Oracle .NET publicou a versão beta do provedor Oracle para o EF Core.The Oracle .NET team has published the beta of the Oracle provider for EF Core. Encaminhe quaisquer dúvidas sobre este provedor, incluindo o cronograma de lançamento, para o Site da Comunidade Oracle.Please direct any questions about this provider, including the release timeline, to the Oracle Community Site.

Adicionando um provedor de banco de dados ao seu aplicativoAdding a database provider to your application

A maioria dos provedores de banco de dados para o EF Core são distribuídos como pacotes NuGet.Most database providers for EF Core are distributed as NuGet packages. Isso significa que eles podem ser instalados usando a ferramenta dotnet na linha de comando:This means they can be installed using the dotnet tool in the command line:

dotnet add package provider_package_name

Ou no Visual Studio, usando o Console do Gerenciador de Pacotes NuGet:Or in Visual Studio, using NuGet's Package Manager Console:

install-package provider_package_name

Depois de instalado, você configurará o provedor no DbContext, no método OnConfiguring ou no método AddDbContext se você estiver usando um contêiner de injeção de dependência.Once installed, you will configure the provider in your DbContext, either in the OnConfiguring method or in the AddDbContext method if you are using a dependency injection container. Por exemplo, a seguinte linha configura o provedor do SQL Server com a cadeia de conexão passada:For example, the following line configures the SQL Server provider with the passed connection string:

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

Os provedores de banco de dados podem estender o EF Core para habilitar a funcionalidade exclusiva para bancos de dados específicos.Database providers can extend EF Core to enable functionality unique to specific databases. Alguns conceitos são comuns à maioria dos bancos de dados e estão incluídos nos componentes principais do EF Core.Some concepts are common to most databases, and are included in the primary EF Core components. Esses conceitos incluem expressar consultas no LINQ, em transações, e rastrear alterações aos objetos depois que eles forem carregados do banco de dados.Such concepts include expressing queries in LINQ, transactions, and tracking changes to objects once they are loaded from the database. Alguns conceitos são específicos para um determinado provedor.Some concepts are specific to a particular provider. Por exemplo, o provedor SQL Server permite configurar as tabelas com otimização de memória (um recurso específico do SQL Server).For example, the SQL Server provider allows you to configure memory-optimized tables (a feature specific to SQL Server). Outros conceitos são específicos de uma classe de provedores.Other concepts are specific to a class of providers. Por exemplo, provedores do EF Core para bancos de dados relacionais são desenvolvidos com base na biblioteca Microsoft.EntityFrameworkCore.Relational comum, que fornece APIs para configurar mapeamentos de tabela e coluna, restrições de chave estrangeira etc. Os provedores geralmente são distribuídos como pacotes NuGet.For example, EF Core providers for relational databases build on the common Microsoft.EntityFrameworkCore.Relational library, which provides APIs for configuring table and column mappings, foreign key constraints, etc. Providers are usually distributed as NuGet packages.

Importante

Quando uma nova versão de patch do EF Core é lançada, ela geralmente inclui atualizações para o pacote Microsoft.EntityFrameworkCore.Relational.When a new patch version of EF Core is released, it often includes updates to the Microsoft.EntityFrameworkCore.Relational package. Quando você adiciona um provedor de banco de dados relacional, esse pacote se torna uma dependência transitiva do seu aplicativo.When you add a relational database provider, this package becomes a transitive dependency of your application. Mas muitos provedores são lançados de forma independente do EF Core e podem não ser atualizados para dependerem da versão de patch mais recente do pacote.But many providers are released independently from EF Core and may not be updated to depend on the newer patch version of that package. Para obter todas as correções de bug, é recomendável que você adicione a versão de patch do Microsoft.EntityFrameworkCore.Relational como uma dependência direta do seu aplicativo.In order to make sure you will get all bug fixes, it is recommended that you add the patch version of Microsoft.EntityFrameworkCore.Relational as a direct dependency of your application.