EF core EF6 EDMX に基づくモデルの移植Porting an EF6 EDMX-Based Model to EF Core

EF Core では、モデルの EDMX ファイルの形式はサポートしません。EF Core does not support the EDMX file format for models. これらのモデルに移植する最適なオプションでは、アプリケーションのデータベースから新しいコードに基づくモデルを生成します。The best option to port these models, is to generate a new code-based model from the database for your application.

EF Core NuGet パッケージをインストールします。Install EF Core NuGet packages

インストール、 Microsoft.EntityFrameworkCore.Tools NuGet パッケージです。Install the Microsoft.EntityFrameworkCore.Tools NuGet package.

モデルを再生成します。Regenerate the model

既存のデータベースに基づくモデルを作成する、リバース エンジニア リングの機能を使えるようになりました。You can now use the reverse engineer functionality to create a model based on your existing database.

パッケージ マネージャー コンソールで、次のコマンドを実行 (ツールは NuGet Package Manager をポイント パッケージ マネージャー コンソールのポイント)。Run the following command in Package Manager Console (Tools –> NuGet Package Manager –> Package Manager Console). 参照してくださいPackage Manager Console (Visual Studio)テーブルなどのサブセットをスキャフォールディングするコマンド オプションについてはします。See Package Manager Console (Visual Studio) for command options to scaffold a subset of tables etc.

Scaffold-DbContext "<connection string>" <database provider name>

たとえば、SQL Server LocalDB インスタンス上のブログ データベースからモデルをスキャフォールディングするコマンドを次に示します。For example, here is the command to scaffold a model from the Blogging database on your SQL Server LocalDB instance.

Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer

EF6 モデルを削除します。Remove EF6 model

今すぐ、アプリケーションから EF6 モデルを削除します。You would now remove the EF6 model from your application.

これは正常に EF6 NuGet パッケージ (EntityFramework) をインストールすると、そのまま EF コアおよび EF6 が同じアプリケーションに並列で使用できます。It is fine to leave the EF6 NuGet package (EntityFramework) installed, as EF Core and EF6 can be used side-by-side in the same application. ただし、アプリケーションのすべての領域で EF6 を使用する場合は、パッケージをアンインストールに役立つの注意が必要なコードのコンパイル エラーが発生します。However, if you aren't intending to use EF6 in any areas of your application, then uninstalling the package will help give compile errors on pieces of code that need attention.

コードを更新しますUpdate your code

この時点では、アドレス指定のコンパイル エラーと EF6 と EF コア間の動作の変更に影響するかどうかを確認するコードの問題であります。At this point, it's a matter of addressing compilation errors and reviewing code to see if the behavior changes between EF6 and EF Core will impact you.

ポートをテストします。Test the port

アプリケーションをコンパイルするためにだけ限りません EF コアが正常に移植します。Just because your application compiles, does not mean it is successfully ported to EF Core. 動作の変更のいずれもと、アプリケーションが悪影響を受けることを確認するには、アプリケーションのすべての領域をテストする必要があります。You will need to test all areas of your application to ensure that none of the behavior changes have adversely impacted your application.


参照してくださいEF Core 既存のデータベースでの ASP.NET Core の使用を開始する既存のデータベースを操作する方法に関するその他のリファレンスについてはSee Getting Started with EF Core on ASP.NET Core with an Existing Database for an additional reference on how to work with an existing database,