EF Core .NET-BefehlszeilentoolsEF Core .NET Command-line Tools

Das Entity Framework Core .NET Befehlszeilentools sind eine Erweiterung für die plattformübergreifende Dotnet Befehl, die Teil von der .NET Core SDK.The Entity Framework Core .NET Command-line Tools are an extension to the cross-platform dotnet command, which is part of the .NET Core SDK.

Tipp

Wenn Sie Visual Studio verwenden, empfiehlt es sich [PMC Tools] 1 seitdem sie stattdessen eine weitere integrierte Lösung bieten.If you're using Visual Studio, we recommend the PMC Tools instead since they provide a more integrated experience.

Installieren der ToolsInstalling the tools

Hinweis

.NET Core SDK, Version 2.1.300 und enthält neuere Dotnet Ef Befehle, die mit EF Core 2.0 und höheren Versionen kompatibel sind.The .NET Core SDK version 2.1.300 and newer includes dotnet ef commands that are compatible with EF Core 2.0 and later versions. Daher wird bei Verwendung von neueren Versionen von .NET Core SDK und die EF-Core-Laufzeit ist keine Installation erforderlich und können Sie die restlichen Teil dieses Abschnitts ignorieren.Therefore if you are using recent versions of the .NET Core SDK and the EF Core runtime, no installation is required and you can ignore the rest of this section.

Auf der anderen Seite der Dotnet Ef Tool in .NET Core SDK-Version 2.1.300 enthalten und höher ist nicht kompatibel mit EF-Core-Version 1.0 und 1.1.On the other hand, the dotnet ef tool contained in .NET Core SDK version 2.1.300 and newer is not compatible with EF Core version 1.0 and 1.1. Bevor Sie kann für ein Projekt, das dieser früheren Versionen von EF Core auf einem Computer verwendet, die .NET Core SDK 2.1.300 verfügt oder höher installiert ist, müssen Sie auch Version 2.1.200 installieren oder eine ältere des SDK und konfigurieren Sie die Anwendung zur Verwendung dieser älteren Version durch Ändern der global.json Datei.Before you can work with a project that uses these earlier versions of EF Core on a computer that has .NET Core SDK 2.1.300 or newer installed, you must also install version 2.1.200 or older of the SDK and configure the application to use that older version by modifying its global.json file. Diese Datei ist normalerweise in dem Projektmappenverzeichnis (eine oberhalb des Projekts) enthalten.This file is normally included in the solution directory (one above the project). Anschließend können Sie mit der Installlation-Anweisung unten fortfahren.Then you can proceed with the installlation instruction below.

Für frühere Versionen von .NET Core SDK können Sie die EF Core .NET-Befehlszeilentools mithilfe der folgenden Schritte installieren:For previous versions of the .NET Core SDK, you can install the EF Core .NET Command-line Tools using these steps:

  1. Bearbeiten der Projektdatei, und fügen Sie Microsoft.EntityFrameworkCore.Tools.DotNet als DotNetCliToolReference-Element (siehe unten)Edit the project file and add Microsoft.EntityFrameworkCore.Tools.DotNet as a DotNetCliToolReference item (See below)

  2. Führen Sie die folgenden Befehle aus:Run the following commands:

    dotnet add package Microsoft.EntityFrameworkCore.Design
    dotnet restore
    

Das daraus resultierende Projekt sollte etwa wie folgt aussehen:The resulting project should look something like this:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design"
                      Version="2.0.0"
                      PrivateAssets="All" />
  </ItemGroup>
  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet"
                            Version="2.0.0" />
  </ItemGroup>
</Project>

Hinweis

Ein Verweis Paket mit PrivateAssets="All" bedeutet, er ist nicht verfügbar gemacht, um Projekte, die auf dieses Projekt verweisen, insbesondere für die Pakete, die in der Regel nur während der Entwicklung verwendet werden.A package reference with PrivateAssets="All" means it isn't exposed to projects that reference this project, which is especially useful for packages that are typically only used during development.

Wenn Sie alles richtig haben, sollten Sie den folgenden Befehl an einer Eingabeaufforderung erfolgreich ausführen können.If you did everything right, you should be able to successfully run the following command in a command prompt.

dotnet ef

Mithilfe der toolsUsing the tools

Bei jedem eines Befehls aufrufen umfasst zwei Projekte:Whenever you invoke a command, there are two projects involved:

Dem Zielprojekt werden Dateien hinzugefügt (oder sie werden in einigen Fällen aus diesem entfernt).The target project is where any files are added (or in some cases removed). Das Zielprojekt wird standardmäßig auf das Projekt im aktuellen Verzeichnis, jedoch können geändert werden, mithilfe der – Projekt Option.The target project defaults to the project in the current directory, but can be changed using the --project option.

Das Startprojekt wird bei Ausführung des Projektcodes von den Tools emuliert.The startup project is the one emulated by the tools when executing your project's code. Auch wird standardmäßig auf das Projekt im aktuellen Verzeichnis, aber kann geändert werden, mithilfe der --Startprojekt Option.It also defaults to the project in the current directory, but can be changed using the --startup-project option.

Hinweis

Aktualisieren der Datenbank Ihrer Web-Anwendung, die EF-Core, die in einem anderen Projekt installiert hat z. B. wie folgt aussehen würde: dotnet ef database update --project {project-path} (aus Ihrem Verzeichnis für den Web-app)For instance, updating the database of your web application that has EF Core installed in a different project would look like this: dotnet ef database update --project {project-path} (from your web app directory)

Allgemeine Optionen:Common options:

--json--json JSON-Ausgabe anzeigen.Show JSON output.
-c-c --Kontext <DBCONTEXT >--context <DBCONTEXT> Die DbContext verwenden.The DbContext to use.
-p-p --Projekt <Projekt >--project <PROJECT> Das Projekt verwendet werden soll.The project to use.
-s-s --Startprojekt <Projekt >--startup-project <PROJECT> Das Startup-Projekt verwenden.The startup project to use.
--Framework <FRAMEWORK >--framework <FRAMEWORK> Das Zielframework.The target framework.
--Konfiguration <CONFIGURATION >--configuration <CONFIGURATION> Die zu verwendende Konfiguration.The configuration to use.
--Runtime <BEZEICHNER >--runtime <IDENTIFIER> Die Laufzeit verwendet werden soll.The runtime to use.
-h-h – Hilfe--help Anzeigen von Hilfeinformationen.Show help information.
-v-v -verbose--verbose Zeigen Sie eine ausführlichen Ausgabe.Show verbose output.
--keine Farbe--no-color Nicht zur farblichen Kennzeichnung der Ausgabe.Don't colorize output.
--Präfix-Ausgabe--prefix-output Präfix Ausgabe auf.Prefix output with level.

Tipp

Legen Sie zum Angeben der ASP.NET Core-Umgebung die ASPNETCORE_ENVIRONMENT Umgebungsvariablen vor der Ausführung.To specify the ASP.NET Core environment, set the ASPNETCORE_ENVIRONMENT environment variable before running.

BefehleCommands

Dotnet Ef das Löschen einer Datenbankdotnet ef database drop

Löscht die Datenbank.Drops the database.

Optionen:Options:

-f-f --erzwingen--force Bestätigen Sie nicht.Don't confirm.
--Probelauf--dry-run Anzeigen, welche Datenbank verworfen werden, jedoch nicht, legen Sie sie.Show which database would be dropped, but don't drop it.

Dotnet Ef-Datenbankupdatedotnet ef database update

Aktualisiert die Datenbank in eine angegebene Migration.Updates the database to a specified migration.

Argumente:Arguments:

<MIGRATION ><MIGRATION> Der zielmigration.The target migration. Bei 0 werden bei allen Migrationen rückgängig gemacht werden.If 0, all migrations will be reverted. Standardmäßig bis zum letzten Migration.Defaults to the last migration.

Dotnet Ef Dbcontext infodotnet ef dbcontext info

Ruft Informationen zu einem DbContext-Typ ab.Gets information about a DbContext type.

Dotnet Ef Dbcontext-Listedotnet ef dbcontext list

Listet die verfügbare DbContext-Typen.Lists available DbContext types.

Dotnet Ef Dbcontext Gerüstdotnet ef dbcontext scaffold

Gerüste ein ' DbContext ' und Entität Typen für eine Datenbank.Scaffolds a DbContext and entity types for a database.

Argumente:Arguments:

<VERBINDUNG ><CONNECTION> Die Verbindungszeichenfolge zur Datenbank.The connection string to the database.
<ANBIETER ><PROVIDER> Die zu verwendenden Anbieter an.The provider to use. (z. B. Microsoft.EntityFrameworkCore.SqlServer)(for example, Microsoft.EntityFrameworkCore.SqlServer)

Optionen:Options:

-d-d --datenanmerkungen--data-annotations Verwenden Sie Attribute, um das Modell (sofern möglich) konfigurieren.Use attributes to configure the model (where possible). Wenn nicht angegeben, wird nur die fluent-API verwendet.If omitted, only the fluent API is used.
-c-c --Kontext <NAME >--context <NAME> Der Name von ' DbContext '.The name of the DbContext.
--Kontext Dir <Pfad >--context-dir <PATH> Das Verzeichnis DbContext-Datei in den versetzt.The directory to put DbContext file in. Pfade sind relativ zum Projektverzeichnis an.Paths are relative to the project directory.
-f-f --erzwingen--force Überschreiben Sie vorhandene Dateien.Overwrite existing files.
-o-o --Ausgabe Dir <Pfad >--output-dir <PATH> Das Verzeichnis in den Dateien versetzt.The directory to put files in. Pfade sind relativ zum Projektverzeichnis an.Paths are relative to the project directory.
--Schema <SCHEMA_NAME >...--schema <SCHEMA_NAME>... Die Schemas der Tabellen zur Generierung von Entitätstypen für.The schemas of tables to generate entity types for.
-t-t --Tabelle <TABLE_NAME >...--table <TABLE_NAME>... Die Tabellen für Entitätstypen generieren.The tables to generate entity types for.
– Verwenden der Datenbanknamen--use-database-names Verwenden Sie die Tabellen- und Spaltennamen direkt aus der Datenbank.Use table and column names directly from the database.

Dotnet Ef Migrationen hinzufügendotnet ef migrations add

Fügt eine neue Migration.Adds a new migration.

Argumente:Arguments:

<NAME><NAME> Der Name der Migration.The name of the migration.

Optionen:Options:

-o-o --Ausgabe Dir <Pfad >--output-dir <PATH> Das Verzeichnis (und Sub-Namespace) zu verwenden.The directory (and sub-namespace) to use. Pfade sind relativ zum Projektverzeichnis an.Paths are relative to the project directory. Der Standardwert ist "Migration".Defaults to "Migrations".

Dotnet Ef Migrationen Listedotnet ef migrations list

Listet die verfügbaren Migrationen.Lists available migrations.

Entfernen Sie Dotnet Ef Migrationendotnet ef migrations remove

Entfernt die letzte Migration.Removes the last migration.

Optionen:Options:

-f-f --erzwingen--force Die Migration zurückgesetzt werden, wenn es auf die Datenbank angewendet wurde.Revert the migration if it has been applied to the database.

Dotnet Ef Migrationen Skriptdotnet ef migrations script

Generiert ein SQL-Skript von Migrationen.Generates a SQL script from migrations.

Argumente:Arguments:

<FROM><FROM> Der Start Migration.The starting migration. Der Standardwert ist 0 (die ursprüngliche Datenbank).Defaults to 0 (the initial database).
<TO><TO> Der Endwert Migration.The ending migration. Standardmäßig bis zum letzten Migration.Defaults to the last migration.

Optionen:Options:

-o-o --Ausgabe <Datei >--output <FILE> Die Datei, schreibt das Ergebnis.The file to write the result to.
-i-i --idempotent--idempotent Generiert ein Skript, das für eine Datenbank bei jeder Migration verwendet werden kann.Generate a script that can be used on a database at any migration.