Écriture d’un fournisseur de base de donnéesWriting a Database Provider

Pour plus d’informations sur l’écriture d’un fournisseur de base de données Entity Framework Core, consultez , vous pouvez écrire un fournisseur EF Core par 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.

Note

Ces publications n’ont pas été mis à jour depuis EF Core 1.1 et des modifications significatives ont été depuis ce moment problème 681 effectue le suivi des mises à jour à cette documentation.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.

La base de code EF Core est open source et contient plusieurs fournisseurs de base de données qui peuvent être utilisées en tant que référence.The EF Core codebase is open source and contains several database providers that can be used as a reference. Vous trouverez le code source à https://github.com/aspnet/EntityFrameworkCore.You can find the source code at https://github.com/aspnet/EntityFrameworkCore. Il peut également être utile d’examiner le code pour les fournisseurs tiers couramment utilisées, telles que Npgsql, Pomelo MySQL, et 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. En particulier, ces projets sont configurés pour étendre à partir d’et exécuter des tests fonctionnels que nous publions sur NuGet.In particular, these projects are setup to extend from and run functional tests that we publish on NuGet. Ce type de configuration est fortement recommandé.This kind of setup is strongly recommended.

Mise à jour avec les modifications de fournisseurKeeping up-to-date with provider changes

Commençant par travail après la version 2.1, nous avons créé un journal des modifications nécessitant que les modifications correspondantes dans le code du fournisseur.Starting with work after the 2.1 release, we have created a log of changes that may need corresponding changes in provider code. Cela vise à aider lors de la mise à jour un fournisseur existant pour travailler avec une nouvelle version d’EF Core.This is intended to help when updating an existing provider to work with a new version of EF Core.

Avant 2.1, nous avons utilisé le providers-beware et providers-fyi étiquettes sur nos problèmes GitHub et les demandes de tirage pour un objectif similaire.Prior to 2.1, we used the providers-beware and providers-fyi labels on our GitHub issues and pull requests for a similar purpose. Nous allons continiue pour utiliser ces étiquettes sur les problèmes de donner une indication que les éléments de travail dans une version donnée peuvent également exiger de travail à effectuer dans les fournisseurs.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. Un providers-beware étiquette signifie généralement que l’implémentation d’un élément de travail peut entraîner la rupture des fournisseurs, tandis qu’un providers-fyi étiquette signifie généralement que les fournisseurs ne sera pas interrompues, mais code peut nécessiter à modifier en tout cas, par exemple, pour activer les nouvelles fonctionnalités.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.

Suggéré d’affectation de noms de fournisseurs tiersSuggested naming of third party providers

Nous vous suggérons d’utiliser le suivantes d’affectation de noms pour les packages NuGet.We suggest using the following naming for NuGet packages. Cela est cohérent avec les noms des packages fournis par l’équipe EF Core.This is consistent with the names of packages delivered by the EF Core team.

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

Exemple :For example:

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