Pisanie dostawcy bazy danychWriting a Database Provider

Informacje na temat pisania dostawcy bazy danych programu Entity Framework Core, zobacz więc chcesz napisać dostawcy programu EF Core przez 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.

Uwaga

Te wpisy nie zostały zaktualizowane od czasu programu EF Core 1.1 i od tego czasu miały miejsce znaczące zmiany 681 problem śledzenie aktualizacji tej dokumentacji.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.

Codebase programu EF Core jest "open source" i zawiera kilka dostawcy baz danych, które mogą służyć jako odwołanie.The EF Core codebase is open source and contains several database providers that can be used as a reference. Można znaleźć kodu źródłowego w https://github.com/aspnet/EntityFrameworkCore.You can find the source code at https://github.com/aspnet/EntityFrameworkCore. Może to być również przydatne Spójrz na kod dla często używanych dostawców innych firm, takich jak Npgsql, Pomelo MySQL, i programu 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. W szczególności te projekty są Instalatora, aby rozszerzyć i uruchom testy funkcjonalne, które możemy opublikować dla narzędzia NuGet.In particular, these projects are setup to extend from and run functional tests that we publish on NuGet. Zdecydowanie zaleca się tego rodzaju instalacji.This kind of setup is strongly recommended.

Aktualizowanie zmian w dostawcyKeeping up-to-date with provider changes

Po wydaniu wersji 2.1, zaczynając od pracy, firma Microsoft opracowała dziennika zmian , może być konieczne odpowiednie zmiany w kodzie dostawcy.Starting with work after the 2.1 release, we have created a log of changes that may need corresponding changes in provider code. Ta wartość jest przeznaczona do pomocy podczas aktualizowania istniejącego dostawcy do pracy z nową wersję programu EF Core.This is intended to help when updating an existing provider to work with a new version of EF Core.

Przed 2.1, użyliśmy providers-beware i providers-fyi etykiety na naszych problemy usługi GitHub i żądań ściągnięcia dla podobnych celów.Prior to 2.1, we used the providers-beware and providers-fyi labels on our GitHub issues and pull requests for a similar purpose. Firma Microsoft będzie continiue na potrzeby tych lables na problemy stanowić wskazówkę, które elementy robocze w danej wersji może również wymagać pracy w dostawcy.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. A providers-beware etykiety zazwyczaj oznacza, że implementacja elementu roboczego może spowodować przerwanie dostawców, podczas gdy providers-fyi etykiety zazwyczaj oznacza, że dostawcy nie będą działać, ale kod może być konieczne, należy zmienić mimo to, na przykład, aby włączyć nowe funkcje.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.

Sugerowane nazewnictwa dostawców innych firmSuggested naming of third party providers

Zaleca się przy użyciu następujących nazewnictwa dla pakietów NuGet.We suggest using the following naming for NuGet packages. Jest to zgodne z nazwami pakiety dostarczone przez zespół programu EF Core.This is consistent with the names of packages delivered by the EF Core team.

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

Na przykład:For example:

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