データベース プロバイダーの作成Writing a Database Provider

Entity Framework Core データベース プロバイダーの作成方法の詳細については、次を参照してください。 、EF Core プロバイダーを記述するようにによって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.

注意

ブログの投稿が EF Core 1.1 以降に更新されていないと、その後大幅な変更も加えられて問題 681がこのドキュメントに対する更新プログラムを追跡します。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.

EF Core のコードベースはオープン ソースであるため、参照として使用できるいくつかのデータベース プロバイダーを含んでいます。The EF Core codebase is open source and contains several database providers that can be used as a reference. ソース コードを検索することができますhttps://github.com/aspnet/EntityFrameworkCoreします。You can find the source code at https://github.com/aspnet/EntityFrameworkCore. サード パーティ プロバイダーの一般的に使用される場合など、コードを検索する便利な場合もありますNpgsqlPomelo MySQL、および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. 具体的には、これらのプロジェクトは、セットアップから拡張して、NuGet で公開される機能テストを実行します。In particular, these projects are setup to extend from and run functional tests that we publish on NuGet. この種のセットアップは強くお勧めします。This kind of setup is strongly recommended.

プロバイダーの変更で最新に保つKeeping up-to-date with provider changes

作成した 2.1 のリリース後、以降の作業をの変更ログプロバイダ コードに対応する変更する必要があります。Starting with work after the 2.1 release, we have created a log of changes that may need corresponding changes in provider code. これは、目的は、新しいバージョンの EF Core を使用する既存のプロバイダーを更新するときにします。This is intended to help when updating an existing provider to work with a new version of EF Core.

使用して 2.1 では、前に、 providers-beware providers-fyi GitHub の懸案事項と同様の目的のプル要求のラベル。Prior to 2.1, we used the providers-beware and providers-fyi labels on our GitHub issues and pull requests for a similar purpose. ここでの問題をこれらのラベルを使用しているかを示す特定のリリースでは、どの作業項目は、プロバイダーで実行する作業を必要がありますを continiue します。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. Aproviders-bewareラベル、通常、作業項目の実装が、プロバイダーを分割ことを意味中に、providers-fyiプロバイダーは切断されますが、コードは、変更するなどの新機能を有効にする必要があります、通常ラベルを意味します。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.

サード パーティ プロバイダーの名前付けの推奨Suggested naming of third party providers

NuGet パッケージの次の名前付けを使用することをお勧めします。We suggest using the following naming for NuGet packages. これは、EF Core チームによって提供されるパッケージの名前と一致します。This is consistent with the names of packages delivered by the EF Core team.

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

例えば:For example:

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