データベース プロバイダーを記述するWriting a Database Provider

Entity Framework Core データベースプロバイダーの作成の詳細については、「 Arthur ヴィッカース」を参照してEF Core プロバイダーを作成することをお勧めします。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 以降に更新されていないため、その時点以降に大幅な変更が加えられています。These posts have not been updated since EF Core 1.1 and there have been significant changes since that time.
問題 681 は、このドキュメントの更新を追跡しています。Issue 681 is tracking updates to this documentation.

EF Core codebase はオープンソースであり、参照として使用できるデータベースプロバイダーがいくつか含まれています。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 MySQLSQL 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 GitHub の providers-fyi 問題とプル要求について、とのラベルを同様の目的で使用していました。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. ラベルは、 providers-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