Escrevendo um provedor de banco de dadosWriting a Database Provider

Para obter informações sobre como escrever um provedor de banco de dados do Entity Framework Core, consulte para que você deseja gravar um provedor do EF Core pela Arthur Vickers.For information about writing an Entity Framework Core database provider, see So you want to write an EF Core provider by Arthur Vickers.

Observação

Essas postagens não foram atualizadas desde o EF Core 1.1 e houve alterações significativas desde essa época problema 681 está acompanhando as atualizações para essa documentação.These posts have not been updated since EF Core 1.1 and there have been significant changes since that time Issue 681 is tracking updates to this documentation.

A base de código do EF Core é um software livre e contém vários provedores de banco de dados que podem ser usados como uma referência.The EF Core codebase is open source and contains several database providers that can be used as a reference. Você pode encontrar o código-fonte em https://github.com/aspnet/EntityFrameworkCore.You can find the source code at https://github.com/aspnet/EntityFrameworkCore. Ele também pode ser útil examinar o código para provedores de terceiros comumente usadas, como Npgsql, Pomelo MySQL, e SQL Server Compact.It may also be helpful to look at the code for commonly used third-party providers, such as Npgsql, Pomelo MySQL, and SQL Server Compact. Em particular, esses projetos são configuradas para estender do e executar testes funcionais que publicamos no NuGet.In particular, these projects are setup to extend from and run functional tests that we publish on NuGet. Esse tipo de instalação é altamente recomendável.This kind of setup is strongly recommended.

Manter-se atualizado com alterações de provedorKeeping up-to-date with provider changes

Começando com o trabalho após a versão 2.1, criamos uma log de alterações que talvez seja necessário que as alterações correspondentes no código do provedor.Starting with work after the 2.1 release, we have created a log of changes that may need corresponding changes in provider code. Isso serve para ajudar ao atualizar um provedor existente para trabalhar com uma nova versão do EF Core.This is intended to help when updating an existing provider to work with a new version of EF Core.

Antes de 2.1, usamos o providers-beware e providers-fyi rótulos em nossos problemas do GitHub e solicitações de pull para uma finalidade similar.Prior to 2.1, we used the providers-beware and providers-fyi labels on our GitHub issues and pull requests for a similar purpose. Iremos continiue para usar esses rótulos em problemas para dar uma indicação de quais itens de trabalho em uma determinada versão também podem exigir trabalho a ser feito em provedores.We will continiue to use these lables on issues to give an indication which work items in a given release may also require work to be done in providers. Um providers-beware rótulo normalmente significa que a implementação de um item de trabalho pode quebrar provedores, enquanto um providers-fyi rótulo normalmente significa que provedores não será interrompidos, mas o código pode precisar ser alterada de qualquer forma, por exemplo, para habilitar a nova funcionalidade.A providers-beware label typically means that the implementation of an work item may break providers, while a providers-fyi label typically means that providers will not be broken, but code may need to be changed anyway, for example, to enable new functionality.

Sugerido nomeação dos provedores de terceirosSuggested naming of third party providers

Sugerimos usar a nomenclatura seguintes para pacotes do NuGet.We suggest using the following naming for NuGet packages. Isso é consistente com os nomes de pacotes fornecidos pela equipe do EF Core.This is consistent with the names of packages delivered by the EF Core team.

<Optional project/company name>.EntityFrameworkCore.<Database engine name>

Por exemplo:For example:

  • Microsoft.EntityFrameworkCore.SqlServer
  • Npgsql.EntityFrameworkCore.PostgreSQL
  • EntityFrameworkCore.SqlServerCompact40