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.

Importante

Os provedores do EF Core normalmente funcionam em versões secundárias, mas não em versões principais.EF Core providers typically work across minor versions, but not across major versions. Por exemplo, um provedor lançado para o EF Core 2.1 deve funcionar com o EF Core 2.2, mas não funcionará com o EF Core 3.0.For example, a provider released for EF Core 2.1 should work with EF Core 2.2, but will not work with EF Core 3.0.

Pacote NuGetNuGet Package Mecanismos de banco de dados com suporteSupported database engines Mantenedor / fornecedorMaintainer / Vendor Notas / requisitosNotes / Requirements Criado para a versãoBuilt for version Links úteisUseful links
Microsoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore.SqlServer SQL Server 2012 em dianteSQL Server 2012 onwards Projeto EF Core (Microsoft)EF Core Project (Microsoft) 3.13.1 docsdocs
Microsoft.EntityFrameworkCore.SqliteMicrosoft.EntityFrameworkCore.Sqlite SQLite 3.7 em dianteSQLite 3.7 onwards Projeto EF Core (Microsoft)EF Core Project (Microsoft) 3.13.1 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) LimitaçõesLimitations 3.13.1 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) 3.13.1 docsdocs
Npgsql.EntityFrameworkCore.PostgreSQLNpgsql.EntityFrameworkCore.PostgreSQL PostgreSQLPostgreSQL Equipe de desenvolvimento do NpgsqlNpgsql Development Team 3.13.1 docsdocs
Pomelo.EntityFrameworkCore.MySqlPomelo.EntityFrameworkCore.MySql MySQL, MariaDBMySQL, MariaDB Pomelo Foundation ProjectPomelo Foundation Project 3.13.1 Leiamereadme
Devart.Data.MySql.EFCoreDevart.Data.MySql.EFCore MySQL 5 em dianteMySQL 5 onwards DevArtDevArt PagoPaid 3.03.0 docsdocs
Devart.Data.Oracle.EFCoreDevart.Data.Oracle.EFCore Oracle Database 9.2.0.4 em dianteOracle DB 9.2.0.4 onwards DevArtDevArt PagoPaid 3.03.0 docsdocs
Devart.Data.PostgreSql.EFCoreDevart.Data.PostgreSql.EFCore PostgreSQL 8.0 em diantePostgreSQL 8.0 onwards DevArtDevArt PagoPaid 3.03.0 docsdocs
Devart.Data.SQLite.EFCoreDevart.Data.SQLite.EFCore SQLite 3 em dianteSQLite 3 onwards DevArtDevArt PagoPaid 3.03.0 docsdocs
FileContextCoreFileContextCore Armazena dados em arquivosStores data in files Morris JanatzekMorris Janatzek Para fins de desenvolvimentoFor development purposes 3.03.0 Leiamereadme
EntityFrameworkCore.JetEntityFrameworkCore.Jet Arquivos do Microsoft AccessMicrosoft Access files BubiBubi .NET Framework.NET Framework 2.22.2 Leiamereadme
EntityFrameworkCore.SqlServerCompact35EntityFrameworkCore.SqlServerCompact35 SQL Server Compact 3,5SQL Server Compact 3.5 Erik Ejlskov JensenErik Ejlskov Jensen .NET Framework.NET Framework 2.22.2 wikiwiki
EntityFrameworkCore.SqlServerCompact40EntityFrameworkCore.SqlServerCompact40 SQL Server Compact 4.0SQL Server Compact 4.0 Erik Ejlskov JensenErik Ejlskov Jensen .NET Framework.NET Framework 2.22.2 wikiwiki
FirebirdSql.EntityFrameworkCore.FirebirdFirebirdSql.EntityFrameworkCore.Firebird Firebird 2.5 e 3.xFirebird 2.5 and 3.x Jiří ČinčuraJiří Činčura 2.22.2 docsdocs
Teradata.EntityFrameworkCoreTeradata.EntityFrameworkCore Banco de dados Teradata 16.10 em dianteTeradata Database 16.10 onwards TeradataTeradata Pré-lançamentoPrerelease 2.22.2 sitewebsite
EntityFrameworkCore.FirebirdSqlEntityFrameworkCore.FirebirdSql Firebird 2.5 e 3.xFirebird 2.5 and 3.x Rafael AlmeidaRafael Almeida 2.12.1 wikiwiki
EntityFrameworkCore.OpenEdgeEntityFrameworkCore.OpenEdge Progress OpenEdgeProgress OpenEdge Alex WieseAlex Wiese 2.12.1 Leiamereadme
MySql.Data.EntityFrameworkCoreMySql.Data.EntityFrameworkCore MySQLMySQL Projeto MySQL (Oracle)MySQL project (Oracle) 2.12.1 docsdocs
Oracle.EntityFrameworkCoreOracle.EntityFrameworkCore Oracle Database 11.2 em dianteOracle DB 11.2 onwards OracleOracle 2.12.1 sitewebsite
IBM.EntityFrameworkCoreIBM.EntityFrameworkCore Db2, InformixDb2, Informix IBMIBM Versão do WindowsWindows version 2.02.0 blogblog
IBM.EntityFrameworkCore-lnxIBM.EntityFrameworkCore-lnx Db2, InformixDb2, Informix IBMIBM Versão do LinuxLinux version 2.02.0 blogblog
IBM.EntityFrameworkCore-osxIBM.EntityFrameworkCore-osx Db2, InformixDb2, Informix IBMIBM Versão do macOSmacOS version 2.02.0 blogblog
Pomelo.EntityFrameworkCore.MyCatPomelo.EntityFrameworkCore.MyCat Servidor MyCATMyCAT Server Pomelo Foundation ProjectPomelo Foundation Project Somente pré-lançamentoPrerelease only 1.11.1 Leiamereadme

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 é distribuída como pacotes NuGet e pode ser instalada da seguinte maneira:Most database providers for EF Core are distributed as NuGet packages, and can be installed as follows:

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