Portando um modelo baseado em EDMX do EF6 para EF CorePorting an EF6 EDMX-Based Model to EF Core

O EF Core não suporta o formato de arquivo EDMX para modelos.EF Core does not support the EDMX file format for models. A melhor opção para esses modelos, a porta é gerar um novo modelo baseado em código do banco de dados para seu aplicativo.The best option to port these models, is to generate a new code-based model from the database for your application.

Instalar os pacotes NuGet do EF CoreInstall EF Core NuGet packages

Instalar o Microsoft.EntityFrameworkCore.Tools pacote do NuGet.Install the Microsoft.EntityFrameworkCore.Tools NuGet package.

Gerar novamente o modeloRegenerate the model

Agora você pode usar a funcionalidade de engenharia reversa para criar um modelo com base em seu banco de dados existente.You can now use the reverse engineer functionality to create a model based on your existing database.

Execute o seguinte comando no Console do Gerenciador de pacotes (ferramentas do Gerenciador de pacotes NuGet de –> –> Package Manager Console).Run the following command in Package Manager Console (Tools –> NuGet Package Manager –> Package Manager Console). Ver Package Manager Console (Visual Studio) para opções de comando para criar o scaffolding de um subconjunto de tabelas etc.See Package Manager Console (Visual Studio) for command options to scaffold a subset of tables etc.

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

Por exemplo, aqui está o comando para criar o scaffolding de um modelo do banco de dados de blogs em sua instância de LocalDB do SQL Server.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

Remover o modelo do EF6Remove EF6 model

Agora, você deve remover o modelo do EF6 de seu aplicativo.You would now remove the EF6 model from your application.

É suficiente deixar o pacote NuGet do EF6 (EntityFramework) instalado, como o EF Core e EF6 podem ser usada lado a lado no mesmo aplicativo.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. No entanto, se você não estiver pretendendo usar EF6 em todas as áreas do seu aplicativo, em seguida, desinstalar o pacote permitirão que os erros de compilação em trechos de código que precisam de atenção.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.

Atualizar seu códigoUpdate your code

Neste ponto, é uma questão de endereçamento de erros de compilação e revisão de código para ver se as alterações de comportamento entre o EF6 e EF Core afetarão você.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.

A porta de testeTest the port

Só porque seu aplicativo for compilado, não significa que ele é movido com êxito para o EF Core.Just because your application compiles, does not mean it is successfully ported to EF Core. Você precisará testar todas as áreas do seu aplicativo para garantir que nenhuma das alterações de comportamento tiver afetado negativamente seu aplicativo.You will need to test all areas of your application to ensure that none of the behavior changes have adversely impacted your application.

Dica

Ver Introdução ao EF Core no ASP.NET Core com o banco de dados existente para uma referência adicional sobre como trabalhar com um banco de dados existenteSee 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,