Przenoszenie modelu opartego na EDMX EF6 do programu EF CorePorting an EF6 EDMX-Based Model to EF Core

EF Core nie obsługuje formatu pliku EDMX dla modeli.EF Core does not support the EDMX file format for models. Najlepszym rozwiązaniem do portu tych modeli jest do generowania nowego modelu opartego na kodzie z bazy danych dla aplikacji.The best option to port these models, is to generate a new code-based model from the database for your application.

Instalowanie pakietów programu EF Core NuGetInstall EF Core NuGet packages

Zainstaluj Microsoft.EntityFrameworkCore.Tools pakietu NuGet.Install the Microsoft.EntityFrameworkCore.Tools NuGet package.

Ponowne generowanie modeluRegenerate the model

Funkcje odtwarzania można teraz używać do tworzenia modeli, w oparciu o istniejącą bazę danych.You can now use the reverse engineer functionality to create a model based on your existing database.

Uruchom następujące polecenie w konsoli Menedżera pakietów (Narzędzia -> Menedżer pakietów NuGet -> Konsola Menedżera pakietów).Run the following command in Package Manager Console (Tools –> NuGet Package Manager –> Package Manager Console). Zobacz Konsola Menedżera pakietów (Visual Studio) opcji polecenia do tworzenia szkieletu podzbioru tabel itp.See Package Manager Console (Visual Studio) for command options to scaffold a subset of tables etc.

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

Na przykład poniżej przedstawiono polecenia do tworzenia szkieletu modelu z bazy danych do obsługi blogów w ramach wystąpienia programu 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

Usuń EF6 modelRemove EF6 model

EF6 model należy teraz usunąć z aplikacji.You would now remove the EF6 model from your application.

Jest dobrym rozwiązaniem pozostawić pakiet NuGet platformy EF6 (EntityFramework), zainstalowane, zgodnie z programem EF Core i EF6 mogą być używane side-by-side w tej samej aplikacji.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. Jednak w przypadku korzystania z platformy EF6 w żadnych obszarów aplikacji nie są pomyślny przebieg operacji, następnie odinstalowaniu pakietu pomoże spowodować błędy kompilacji na fragmenty kodu, które wymagają uwagi.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.

Aktualizowanie koduUpdate your code

W tym momencie jest kwestią adresowania błędy kompilacji i recenzowania kod, aby sprawdzić, czy zmiany zachowania między EF6 i EF Core będzie miało wpływ na możesz.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.

Testowanie portuTest the port

Po prostu, ponieważ kompiluje aplikację, nie znaczy, że pomyślnie są przenoszone do programu EF Core.Just because your application compiles, does not mean it is successfully ported to EF Core. Należy przetestować wszystkie obszary w aplikacji, aby upewnić się, że żadne zmiany zachowania niekorzystnie wpłynąć na nie wpływ aplikacji.You will need to test all areas of your application to ensure that none of the behavior changes have adversely impacted your application.

Porada

Zobacz rozpoczęcie pracy z programem EF Core programu ASP.NET Core z istniejącej bazy danych Aby uzyskać dodatkowe informacje na temat sposobu pracy z istniejącej bazy danychSee 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,