Schreiben eines DatenbankanbietersWriting a Database Provider

Informationen zum Schreiben von einem Entity Framework Core-Datenbankanbieter, finden Sie unter einen EF Core-Anbieter schreiben, empfiehlt sich daher von 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.

Hinweis

Diese Beiträge seit EF Core 1.1 nicht aktualisiert wurden, und es wurden bedeutende Änderungen seit diesem Zeitpunkt Problem 681 Nachverfolgen von Aktualisierungen in dieser Dokumentation wird.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.

Die Codebasis von EF Core ist open Source und enthält mehrere Datenbankanbietern, die als Verweis verwendet werden können.The EF Core codebase is open source and contains several database providers that can be used as a reference. Sie finden den Quellcode auf https://github.com/aspnet/EntityFrameworkCore.You can find the source code at https://github.com/aspnet/EntityFrameworkCore. Es kann auch hilfreich sein, z. B. den Code für häufig verwendete Drittanbieter betrachten Npgsql, Pomelo-MySQL, und 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. Insbesondere werden diese Projekte erweitern aus, und führen Funktionstests, die wir Veröffentlichen in NuGet-Setup.In particular, these projects are setup to extend from and run functional tests that we publish on NuGet. Diese Art von Setup wird dringend empfohlen.This kind of setup is strongly recommended.

Behalten auf dem neuesten Stand mit Anbieter-ÄnderungenKeeping up-to-date with provider changes

Starten mit der Arbeit nach der Version 2.1, wir haben eine Änderungen protokolliert , die möglicherweise die entsprechenden Änderungen in den Anbietercode.Starting with work after the 2.1 release, we have created a log of changes that may need corresponding changes in provider code. Dies soll helfen bei der Aktualisierung eines vorhandenen Anbieters mit einer neuen Version von EF Core funktioniert.This is intended to help when updating an existing provider to work with a new version of EF Core.

Vor dem 2.1, verwendet der providers-beware und providers-fyi Bezeichnungen auf unserer GitHub-Problemen und Pull Requests für einen ähnlichen Zweck.Prior to 2.1, we used the providers-beware and providers-fyi labels on our GitHub issues and pull requests for a similar purpose. Wir werden Continiue, um diese zu Problemen mit dem eine Angabe über das erteilen, welche Arbeitsaufgaben in einer bestimmten Version ebenfalls im Anbieter auszuführenden Arbeit erfordern.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. Ein providers-beware Bezeichnung bedeutet normalerweise, dass es sich bei die Implementierung eines Arbeitselements Anbieter unterbrechen kann während einer providers-fyi Bezeichnung bedeutet normalerweise, dass Anbieter werden nicht beeinträchtigt, aber der Code möglicherweise dennoch, z. B. geändert werden, um neue Funktionen zu aktivieren.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.

Empfohlene Benennung von DrittanbieternSuggested naming of third party providers

Es wird empfohlen, mit dem folgenden Namen für NuGet-Pakete.We suggest using the following naming for NuGet packages. Dies ist konsistent mit den Namen der Pakete, die von der EF Core-Team bereitgestellt werden.This is consistent with the names of packages delivered by the EF Core team.

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

Zum Beispiel:For example:

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