Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az Entity Framework Core Csomagkezelő konzoljának (PMC) eszközei tervezési idejű fejlesztési feladatokat hajtanak végre. Például létrehoznak migrálásokat, migrálásokat alkalmaznak, és kódokat hoznak létre egy modellhez egy meglévő adatbázis alapján. A parancsok a Visual Studióban futnak a Package Manager-konzolhasználatával. Ezek az eszközök a .NET-keretrendszerrel és a .NET Core-projektekkel is működnek.
Ha nem a Visual Studiót használja, javasoljuk, hogy ehelyett az EF Core parancssori eszközöket. A .NET Core CLI-eszközök platformfüggetlenek, és parancssorban futnak.
Figyelmeztetés
Ez a cikk egy helyi adatbázist használ, amely nem igényli a felhasználó hitelesítését. Az éles környezetben futó alkalmazásoknak az elérhető legbiztonságosabb hitelesítési folyamatot kell használniuk. Az üzembe helyezett teszt- és éles alkalmazások hitelesítéséről további információt Biztonságos hitelesítési folyamatokcímű témakörben talál.
Az eszközök telepítése
Telepítse a Package Manager konzoleszközöket az alábbi parancs futtatásával Package Manager-konzol:
Install-Package Microsoft.EntityFrameworkCore.Tools
Frissítse az eszközöket az alábbi parancs futtatásával a Package Manager Consoleablakában.
Update-Package Microsoft.EntityFrameworkCore.Tools
A telepítés ellenőrzése
Ellenőrizze, hogy az eszközök telepítve vannak-e a következő parancs futtatásával:
Get-Help about_EntityFrameworkCore
A kimenet így néz ki (nem árulja el a használt eszközök melyik verzióját):
_/\__
---==/ \\
___ ___ |. \|\
| __|| __| | ) \\\
| _| | _| \_/ | //|\\
|___||_| / \\\/\\
TOPIC
about_EntityFrameworkCore
SHORT DESCRIPTION
Provides information about the Entity Framework Core Package Manager Console Tools.
<A list of available commands follows, omitted here.>
Az eszközök használata
Az eszközök használata előtt:
- Ismerje meg a cél- és az indítási projekt közötti különbséget.
- Megtudhatja, hogyan használhatja az eszközöket .NET Standard osztálykódtárakkal.
- Az ASP.NET Core-projektek esetében állítsa be a környezetet.
Cél- és indítási projekt
A parancsok egy projekt és egy indítási projektrevonatkoznak.
A projektcélprojektként is ismert, mert a parancsok fájlokat adnak hozzá vagy távolítanak el. Alapértelmezés szerint a Csomagkezelő konzol által kiválasztott projekt az Alapértelmezett projekt, ami a célprojekt. A
paraméterrel megadhat egy másik projektet célprojektként.-Project
A startupprojekt az, amelyet az eszközök létrehoznak és futtatnak. Az eszközöknek a tervezéskor végre kell hajtaniuk az alkalmazáskódot, hogy információt szerezzenek a projektről, például az adatbázis kapcsolati sztringjéről és a modell konfigurációjáról. Alapértelmezés szerint a MegoldáskezelőIndítási projekt az indítási projekt. A
paraméterrel megadhat egy másik projektet indítási projektként.-StartupProject
Az indítási projekt és a célprojekt gyakran ugyanaz a projekt. Egy tipikus forgatókönyv, amikor különálló projektekről van szó, amikor:
- Az EF Core-környezet és az entitásosztályok egy .NET Core-osztálytárban találhatók.
- A .NET Core-konzolalkalmazás vagy -webalkalmazás az osztálytárra hivatkozik.
A migrálási kódokat az EF Core-környezettől is el lehet helyezni egy osztálytárban.
Egyéb cél-keretrendszerek
A Package Manager konzoleszközök .NET Core- vagy .NET-keretrendszerprojektekkel működnek. Előfordulhat, hogy azok az alkalmazások, amelyeknél az EF Core-modell egy .NET Standard osztálytárban található, nem rendelkeznek .NET Core- vagy .NET-keretrendszerprojektekkel. Ez igaz például a Xamarin és az Univerzális Windows Platform-alkalmazásokra. Ilyen esetekben létrehozhat egy .NET Core- vagy .NET-keretrendszer-konzolalkalmazás-projektet, amelynek egyetlen célja, hogy indítási projektként működjön az eszközökhöz. A projekt lehet egy valós kód nélküli, hamis projekt – csak az eszközkezelés céljának megadására van szükség.
Fontos
A Xamarin.Android, a Xamarin.iOS és a Xamarin.Mac mostantól közvetlenül a .NET-be van integrálva (a .NET 6-tól kezdve), androidos .NET, iOS-hez .NET és macOS esetén .NET néven. Ha ezeket a projekttípusokat ma készíti el, a folyamatos támogatás érdekében .NET SDK-stílusú projektekre kell frissíteni őket. További információ a Xamarin-projektek .NET-re való frissítéséről: Frissítés xamarinról .NET & .NET MAUI dokumentációra.
Miért van szükség próbaprojektre? Ahogy korábban említettük, az eszközöknek a tervezéskor végre kell hajtaniuk az alkalmazáskódot. Ehhez a .NET Core vagy a .NET-keretrendszer futtatókörnyezetét kell használniuk. Ha az EF Core-modell olyan projektben van, amely a .NET Core-t vagy a .NET-keretrendszert célozza, az EF Core-eszközök kölcsönkérik a futtatókörnyezetet a projektből. Ezt nem tehetik meg, ha az EF Core-modell egy .NET Standard osztálykódtárban található. A .NET Standard nem tényleges .NET-implementáció; ez olyan API-k specifikációja, amelyeket a .NET-implementációknak támogatniuk kell. Ezért a .NET Standard nem elegendő az EF Core-eszközök számára az alkalmazáskód végrehajtásához. Az indítási projektként létrehozott próbaprojekt egy konkrét célplatformot biztosít, amelybe az eszközök betölthetik a .NET Standard osztálytárat.
ASP.NET Core-környezet
A parancssorban megadhatja ASP.NET Core-projektek környezeti. Ezt és minden további argumentumot a Program.CreateHostBuildernek ad át.
Update-Database -Args '--environment Production'
Gyakori paraméterek
Az alábbi táblázat az összes EF Core-parancsra jellemző paramétereket mutatja be:
Paraméter | Leírás |
---|---|
-Context <String> |
A használni kívánt DbContext osztály. Csak osztálynév vagy teljesen kvalifikált névtérrel rendelkező osztálynév. Ha ez a paraméter nincs megadva, az EF Core megkeresi a környezeti osztályt. Ha több környezeti osztály is létezik, ez a paraméter szükséges. |
-Project <String> |
A célprojekt. Ha ez a paraméter nincs megadva, a Alapértelmezett projekt a Package Manager konzol számára lesz a célprojekt. |
-StartupProject <String> |
Az indítási projekt. Ha ez a paraméter nincs megadva, a Indítási projektMegoldás tulajdonságai lesz a célprojekt. |
-Args <String> |
Az alkalmazásnak átadott argumentumok. |
-Verbose |
Részletes kimenet megjelenítése. |
A parancsokkal kapcsolatos súgóinformációk megjelenítéséhez használja a PowerShell Get-Help
parancsát.
Borravaló
A Context
, Project
és StartupProject
paraméterek támogatják a tabulátorbővítést.
Add-Migration
Hozzáad egy új migrációt.
Paraméterek:
Paraméter | Leírás |
---|---|
-Name <String> |
Az áttelepítés neve. Ez egy pozícióparaméter, és kötelező. |
-OutputDir <String> |
A könyvtár a fájlok kimenetének tárolására szolgál. Az elérési utak a célprojekt könyvtárához vannak viszonyítva. Alapértelmezés szerint "Migrálások". |
-Namespace <String> |
A létrehozott osztályokhoz használandó névtér. A kimeneti könyvtárból létrehozandó alapértelmezett értékek. |
A gyakori paraméterek a fenti felsorolásban találhatók.
Bundle-Migration
Létrehoz egy végrehajtható fájlt az adatbázis frissítéséhez.
Paraméterek:
Paraméter | Leírás |
---|---|
-Output <String> |
A létrehozandó végrehajtható fájl elérési útja. |
-Force |
Meglévő fájlok felülírása. |
-SelfContained |
Csomagolja be a .NET-futtatókörnyezetet is, hogy ne kelljen telepíteni a gépre. |
-TargetRuntime <String> |
A cél futtatókörnyezet, amelyhez csomagot készítünk. |
-Framework <String> |
A cél keretrendszer. Alapértelmezés szerint az első a projektben. |
A gyakori paraméterek a fenti felsorolásban találhatók.
Drop-Database
Adatbázis törlése
Paraméterek:
Paraméter | Leírás |
---|---|
-WhatIf |
Mutassa meg, melyik adatbázis kerül törlésre, de ne törölje. |
A gyakori paraméterek a fenti felsorolásban találhatók.
Get-DbContext
Felsorolja és lekéri az elérhető DbContext
típusokkal kapcsolatos információkat.
A gyakori paraméterek a fenti felsorolásban találhatók.
Get-Migration
Listázza az elérhető áttelepítéseket.
Paraméterek:
Paraméter | Leírás |
---|---|
-Connection <String> |
Az adatbázis kapcsolati sztringje. Az AddDbContextben vagy az OnConfiguringban megadott alapértelmezett érték. |
-NoConnect |
Ne csatlakozzon az adatbázishoz. |
A gyakori paraméterek a fenti felsorolásban találhatók.
Optimize-DbContext
Létrehozza a DbContext
által használt modell lefordított verzióját.
További információért lásd az Összeállított modellek részét.
Paraméterek:
Paraméter | Leírás |
---|---|
-OutputDir <String> |
A fájlokat tartalmazó könyvtár. Az elérési utak a projektkönyvtárhoz vannak viszonyítva. |
-Namespace <String> |
Az összes létrehozott osztályhoz használandó névtér. Alapértelmezés szerint a gyökérnévtérből és a kimeneti könyvtárból, valamint a CompiledModels -ból generáltan. |
A gyakori paraméterek a fenti felsorolásban találhatók.
Jegyzet
A PMC-eszközök jelenleg nem támogatják a NativeAOT fordításhoz és az előre összeállított lekérdezésekhez szükséges kód generálását.
Az alábbi példa az alapértelmezett értékeket használja, és akkor működik, ha csak egy DbContext
van a projektben:
Optimize-DbContext
Az alábbi példa a megadott névvel optimalizálja a modellt a környezethez, és egy külön mappába és névtérbe helyezi:
Optimize-DbContext -OutputDir Models -Namespace BlogModels -Context BlogContext
Remove-Migration
Eltávolítja az utolsó migrálást (visszaállítja az áttelepítéshez végrehajtott kódmódosításokat).
Paraméterek:
Paraméter | Leírás |
---|---|
-Force |
Állítsa vissza a migrálást (állítsa vissza az adatbázisra alkalmazott módosításokat). |
A gyakori paraméterek a fenti felsorolásban találhatók.
Scaffold-DbContext
Egy adatbázis DbContext
és entitástípusainak kódját hozza létre. Ahhoz, hogy Scaffold-DbContext
entitástípust generáljon, az adatbázistáblának elsődleges kulccsal kell rendelkeznie.
Paraméterek:
A gyakori paraméterek a fenti felsorolásban találhatók.
Példa:
Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
Példa arra, hogy csak a kijelölt táblák generálódnak és a környezet egy külön mappában, egy megadott névvel és névtérrel jön létre:
Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Tables "Blog","Post" -ContextDir Context -Context BlogContext -ContextNamespace New.Namespace
Az alábbi példa beolvassa a kapcsolati sztringet akonfiguráció használatával.
Scaffold-DbContext "Name=ConnectionStrings:Blogging" Microsoft.EntityFrameworkCore.SqlServer
Script-DbContext
SQL-szkriptet hoz létre a DbContextből. Megkerüli a migrálásokat.
Paraméterek:
Paraméter | Leírás |
---|---|
-Output <String> |
A fájl, amelybe az eredményt meg szeretné írni. |
A gyakori paraméterek a fenti felsorolásban találhatók.
Script-Migration
Létrehoz egy SQL-szkriptet, amely az egyik kijelölt migrálás minden módosítását egy másik kijelölt migrálásra alkalmazza.
Paraméterek:
Paraméter | Leírás |
---|---|
-From <String> |
A kezdeti migrálás. Az áttelepítések név vagy azonosító alapján azonosíthatók. A 0 szám egy speciális eset, amely azt jelenti, hogy azelső áttelepítése előtt. Alapértelmezés szerint 0. |
-To <String> |
A befejező migrálás. Alapértelmezettként az utolsó migrációt választja. |
-Idempotent |
Hozzon létre egy szkriptet, amely bármilyen migráláskor használható az adatbázisban. |
-NoTransactions |
Ne hozzon létre SQL-tranzakciós utasításokat. |
-Output <String> |
A fájl, amelybe az eredményt meg szeretné írni. Ha ez a paraméter nincs megadva, a fájl egy létrehozott névvel jön létre az alkalmazás futtatókörnyezeti fájljaival megegyező mappában, például: /obj/Debug/netcoreapp2.1/ghbkztfz.sql/. |
A gyakori paraméterek a fenti felsorolásban találhatók.
Borravaló
A To
, From
és Output
paraméterek támogatják a tabulátorbővítést.
Az alábbi példa létrehoz egy szkriptet az InitialCreate migrálásához (áttelepítés nélküli adatbázisból) az áttelepítés nevével.
Script-Migration 0 InitialCreate
Az alábbi példa egy szkriptet hoz létre az InitialCreate migrálás utáni összes áttelepítéshez az áttelepítési azonosító használatával.
Script-Migration 20180904195021_InitialCreate
Update-Database
Frissíti az adatbázist az utolsó áttelepítésre vagy egy adott migrálásra.
Paraméter | Leírás |
---|---|
-Migration <String> |
A célpont áttelepítése. Az áttelepítések név vagy azonosító alapján azonosíthatók. A 0 szám egy speciális eset, amely -t jelent az első migráció előtt, és az összes migrációt visszavonja. Ha nincs megadva migráció, az utasítás alapértelmezés szerint az utolsó migrációt választja. |
-Connection <String> |
Az adatbázis kapcsolati karaktersorozata. Az alapértelmezett érték a AddDbContext vagy OnConfiguring . |
A gyakori paraméterek a fenti felsorolásban találhatók.
Borravaló
A Migration
paraméter támogatja a tabulátorbővítést.
Az alábbi példa az összes áttelepítést visszaállítja.
Update-Database 0
Az alábbi példák egy adott migrálásra frissítik az adatbázist. Az első az áttelepítés nevét, a második pedig a migrálási azonosítót és egy megadott kapcsolatot használja:
Update-Database InitialCreate
Update-Database 20180904195021_InitialCreate -Connection your_connection_string