Přenos modelu založeného na EF6 EDMX na EF Core
EF Core nepodporuje formát souboru EDMX pro modely. Nejlepší možností pro portování těchto modelů je vygenerovat nový model založený na kódu z databáze pro vaši aplikaci.
Instalace balíčků NUGet EF Core
Microsoft.EntityFrameworkCore.Tools
Nainstalujte balíček NuGet.
Opětovné vygenerování modelu
Funkce zpětné analýzy teď můžete použít k vytvoření modelu založeného na vaší stávající databázi.
V konzole Správce balíčků spusťte následující příkaz (nástroje –> Správce balíčků NuGet –> konzola Správce balíčků). V části Správce balíčků Console (Visual Studio) najdete možnosti příkazů pro generování podmnožinu tabulek atd.
Scaffold-DbContext "<connection string>" <database provider name>
Tady je například příkaz, který vygeneruje model z databáze blogování v instanci SQL Serveru LocalDB.
Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer
Odebrání modelu EF6
Model EF6 byste teď ze své aplikace odebrali.
Balíček NuGet EF6 (EntityFramework) je v pořádku nechat nainstalovaný, protože EF Core a EF6 je možné používat souběžně ve stejné aplikaci. Pokud ale nemáte v úmyslu používat EF6 v žádné oblasti aplikace, odinstalace balíčku pomůže zaměřit chyby kompilátoru na části kódu, které vyžadují pozornost.
Aktualizace kódu
V tomto okamžiku je otázkou řešení chyb kompilace a kontroly kódu, abyste zjistili, jestli se chování mezi EF6 a EF Core změní na vás.
Otestování portu
Jenom proto, že se vaše aplikace zkompiluje, neznamená, že se úspěšně portuje do EF Core. Budete muset otestovat všechny oblasti aplikace, abyste měli jistotu, že žádné změny chování nebudou mít nepříznivý vliv na vaši aplikaci.
Další aspekty
EF Core nepodporuje EntityClient
poskytovatele, a proto je nutné migrovat dotazy EntitySQL do LINQ nebo FromRawSql
.
Kromě toho neexistuje podpora pro entityClient připojovací řetězec.
Další důležité informace najdete v úplném průvodci rozdíly mezi EF6 a EF Core.