Portage d’un modèle EDMX EF6 vers EF CorePorting an EF6 EDMX-Based Model to EF Core

EF Core ne prend pas en charge le format de fichier EDMX pour les modèles.EF Core does not support the EDMX file format for models. La meilleure option pour ces modèles, le port consiste à générer un nouveau modèle basé sur le code à partir de la base de données pour votre application.The best option to port these models, is to generate a new code-based model from the database for your application.

Installer les packages NuGet de EF CoreInstall EF Core NuGet packages

Installer le Microsoft.EntityFrameworkCore.Tools package NuGet.Install the Microsoft.EntityFrameworkCore.Tools NuGet package.

Régénérer le modèleRegenerate the model

Vous pouvez maintenant utiliser la fonctionnalité d’ingénierie à rebours pour créer un modèle basé sur votre base de données existante.You can now use the reverse engineer functionality to create a model based on your existing database.

Exécutez la commande suivante dans la Console du Gestionnaire de Package (Outils -> Gestionnaire de Package NuGet -> Console du Gestionnaire de Package).Run the following command in Package Manager Console (Tools –> NuGet Package Manager –> Package Manager Console). Consultez Console du Gestionnaire de Package (Visual Studio) pour les options de commande Générer automatiquement un sous-ensemble de tables, etc.See Package Manager Console (Visual Studio) for command options to scaffold a subset of tables etc.

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

Par exemple, voici la commande pour générer automatiquement un modèle à partir de la base de données de création de blogs sur votre instance de 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

Supprimer le modèle EF6Remove EF6 model

Vous devez maintenant supprimer le modèle de EF6 à partir de votre application.You would now remove the EF6 model from your application.

Il est possible de laisser le package NuGet d’EF6 (Entity Framework) est installé, comme EF Core et EF6 peuvent être utilisé côté à côte dans la même application.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. Toutefois, si vous n’êtes pas l’intention d’utiliser EF6 dans les zones de votre application, puis la désinstallation du package vous permettent d’exercer des erreurs de compilation sur les éléments de code nécessitant votre attention.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.

Mettre à jour votre codeUpdate your code

À ce stade, il est une question de l’adressage des erreurs de compilation et de révision de code pour voir si les modifications de comportement entre EF6 et EF Core aura un impact sur vous.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.

Le port de testTest the port

Parce que votre application est compilée, ne signifie pas qu’il est correctement déplacée vers EF Core.Just because your application compiles, does not mean it is successfully ported to EF Core. Vous devez tester toutes les zones de votre application pour vous assurer qu’aucun des changements de comportement ont défavorablement affectées de votre application.You will need to test all areas of your application to ensure that none of the behavior changes have adversely impacted your application.

Conseil

Consultez mise en route avec EF Core sur ASP.NET Core avec une base de données existante pour une référence supplémentaire sur la façon de travailler avec une base de données existanteSee 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,