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.