Narzędzia wiersza polecenia platformy .NET Core EFEF Core .NET Command-line Tools

Narzędzia wiersza polecenia programu Entity Framework Core .NET są rozszerzenia dla wielu platform dotnet polecenia, który jest częścią programu .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.

Porada

Jeśli używasz programu Visual Studio, firma Microsoft zaleca [narzędzia PMC] 1 zamiast ponieważ zapewniają większą integrację.If you're using Visual Studio, we recommend the PMC Tools instead since they provide a more integrated experience.

Instalowanie narzędziInstalling the tools

Uwaga

.NET Core SDK w wersji 2.1.300 i zawiera nowszą dotnet ef poleceń, które są zgodne z EF Core w wersji 2.0 i nowszych wersjach.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. Dlatego jeśli używane są nowe wersje zestawu SDK .NET Core i EF podstawowego środowiska wykonawczego, instalacja nie jest wymagana i pozostałej części tej sekcji można zignorować.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.

Z drugiej strony dotnet ef narzędzie zawartych w wersji zestawu SDK programu .NET Core 2.1.300 i nowszych nie jest zgodny z wersją EF Core 1.0 i 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. Przed możesz pracować z projektu, który używa tych wersji EF rdzeni na komputerze, na którym zainstalowano program .NET Core SDK 2.1.300 lub nowszej zainstalowany, należy również zainstalować wersję 2.1.200 lub starsze zestawu SDK i skonfigurować aplikację do używania starszej wersji, modyfikując jego global.json pliku.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. Ten plik znajduje się zwykle w katalogu rozwiązania (jeden nad projektu).This file is normally included in the solution directory (one above the project). Następnie można przejść z poniższych instrukcji na temat.Then you can proceed with the installlation instruction below.

W poprzednich wersjach zestawu SDK .NET Core można zainstalować narzędzi wiersza polecenia platformy .NET Core EF przy użyciu następujące kroki:For previous versions of the .NET Core SDK, you can install the EF Core .NET Command-line Tools using these steps:

  1. Edytuj plik projektu i dodać Microsoft.EntityFrameworkCore.Tools.DotNet jako element DotNetCliToolReference (patrz poniżej)Edit the project file and add Microsoft.EntityFrameworkCore.Tools.DotNet as a DotNetCliToolReference item (See below)

  2. Uruchom następujące polecenia:Run the following commands:

    dotnet add package Microsoft.EntityFrameworkCore.Design
    dotnet restore
    

Projekt wynikowy powinien wyglądać następująco: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>

Uwaga

Odwołanie pakietu z PrivateAssets="All" oznacza, że nie jest on ujawniony dla projektów odwołujących się do tego projektu, co jest szczególnie przydatne w przypadku pakietów, które zwykle są używane tylko podczas tworzenia.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.

Jeśli tak, nie wszystkie prawa należy pomyślnie uruchomić następujące polecenie w wierszu polecenia.If you did everything right, you should be able to successfully run the following command in a command prompt.

dotnet ef

Korzystając z narzędziUsing the tools

Przy każdym wywołaniu polecenia obejmuje dwa projekty:Whenever you invoke a command, there are two projects involved:

Projekt docelowy jest w przypadku, gdy zostaną dodane wszystkie pliki (lub w niektórych przypadkach usunięte).The target project is where any files are added (or in some cases removed). Docelowy projekt domyślnie projektu w bieżącym katalogu, ale można zmienić za pomocą --projektu opcji.The target project defaults to the project in the current directory, but can be changed using the --project option.

Projekt startowy jest emulowane przez narzędzia podczas wykonywania kodu projektu.The startup project is the one emulated by the tools when executing your project's code. On również domyślnie projektu w bieżącym katalogu, ale można zmienić za pomocą — projekt startowy opcji.It also defaults to the project in the current directory, but can be changed using the --startup-project option.

Uwaga

Na przykład uaktualnienie bazy danych aplikacji sieci web, który został zainstalowany w innym projekcie Core EF będzie wyglądać następująco: dotnet ef database update --project {project-path} (z katalogu aplikacji sieci web)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)

Typowe opcje:Common options:

--json--json Pokaż dane wyjściowe JSON.Show JSON output.
-c-c --kontekstu <DBCONTEXT >--context <DBCONTEXT> DbContext do użycia.The DbContext to use.
-p-p --projektu <projektu >--project <PROJECT> Projekt do użycia.The project to use.
-s-s --Projekt startowy <projektu >--startup-project <PROJECT> Projekt startowy do użycia.The startup project to use.
--framework <FRAMEWORK >--framework <FRAMEWORK> Platforma docelowa.The target framework.
--Konfiguracja <CONFIGURATION >--configuration <CONFIGURATION> Konfiguracja do użycia.The configuration to use.
środowisko uruchomieniowe — <identyfikator >--runtime <IDENTIFIER> Środowiska uruchomieniowego do użycia.The runtime to use.
-h-h --help--help Pokaż informacje pomocy.Show help information.
-v-v -verbose--verbose Pokaż pełne dane wyjściowe.Show verbose output.
— Brak koloru--no-color Nie kolorowanie danych wyjściowych.Don't colorize output.
--dane wyjściowe prefiksu--prefix-output Dane wyjściowe z poziomu prefiks.Prefix output with level.

Porada

Aby w środowisku ASP.NET Core, ustaw ASPNETCORE_ENVIRONMENT zmiennej środowiskowej przed uruchomieniem.To specify the ASP.NET Core environment, set the ASPNETCORE_ENVIRONMENT environment variable before running.

PoleceniaCommands

Usuń bazę danych ef DotNetdotnet ef database drop

Odrzuca bazy danych.Drops the database.

Opcje:Options:

-f-f --wymusić--force Nie potwierdzić.Don't confirm.
--przebiegu próbnego--dry-run Pokaż bazę danych, która będą pomijane, ale nie jej porzucić.Show which database would be dropped, but don't drop it.

Aktualizacja bazy danych ef DotNetdotnet ef database update

Aktualizuje bazę danych do określonego migracji.Updates the database to a specified migration.

Argumenty:Arguments:

<MIGRACJA ><MIGRATION> Migracja docelowych.The target migration. Jeśli 0, będzie można przywrócić wszystkich migracji.If 0, all migrations will be reverted. Domyślnie ostatni migracji.Defaults to the last migration.

informacje o dbcontext ef DotNetdotnet ef dbcontext info

Pobiera informacje o typie DbContext.Gets information about a DbContext type.

Lista dbcontext ef DotNetdotnet ef dbcontext list

Wyświetla listę dostępnych typów DbContext.Lists available DbContext types.

szkieletu dbcontext ef DotNetdotnet ef dbcontext scaffold

Rusztowania DbContext i jednostki typy dla bazy danych.Scaffolds a DbContext and entity types for a database.

Argumenty:Arguments:

<POŁĄCZENIA ><CONNECTION> Parametry połączenia z bazą danych.The connection string to the database.
<DOSTAWCA ><PROVIDER> Dostawca do użycia.The provider to use. (na przykład Microsoft.EntityFrameworkCore.SqlServer)(for example, Microsoft.EntityFrameworkCore.SqlServer)

Opcje:Options:

-d-d --adnotacji danych--data-annotations Użyj atrybutów, aby skonfigurować model (jeśli będzie to możliwe).Use attributes to configure the model (where possible). Przypadku jego pominięcia jest używana tylko interfejsu API fluent.If omitted, only the fluent API is used.
-c-c --kontekstu <NAME >--context <NAME> Nazwa typu DbContext.The name of the DbContext.
-dir kontekstu <ŚCIEŻKĘ >--context-dir <PATH> Katalog mają zostać umieszczone w pliku DbContext.The directory to put DbContext file in. Ścieżki są względem katalogu projektu.Paths are relative to the project directory.
-f-f --wymusić--force Zastąpienie istniejących plików.Overwrite existing files.
-o-o --katalog wyjściowy <ŚCIEŻKĘ >--output-dir <PATH> Umieścić pliki katalogu.The directory to put files in. Ścieżki są względem katalogu projektu.Paths are relative to the project directory.
--schematu <SCHEMA_NAME >...--schema <SCHEMA_NAME>... Schematy tabele, aby wygenerować typy jednostek.The schemas of tables to generate entity types for.
-t-t --tabeli <nazwa_tabeli >...--table <TABLE_NAME>... Tabele, aby wygenerować typy jednostek.The tables to generate entity types for.
--nazwy w przypadku baz danych użycia--use-database-names Użyj nazwy tabel i kolumn bezpośrednio z bazy danych.Use table and column names directly from the database.

Dodaj migracje ef DotNetdotnet ef migrations add

Dodaje nowe migracji.Adds a new migration.

Argumenty:Arguments:

<NAME><NAME> Nazwa migracji.The name of the migration.

Opcje:Options:

-o-o --katalog wyjściowy <ŚCIEŻKĘ >--output-dir <PATH> Katalog (i przestrzeni nazw sub) do użycia.The directory (and sub-namespace) to use. Ścieżki są względem katalogu projektu.Paths are relative to the project directory. Wartość domyślna to "Migracji".Defaults to "Migrations".

Lista migracje ef DotNetdotnet ef migrations list

Wyświetla listę dostępnych migracji.Lists available migrations.

Usuń migracje ef DotNetdotnet ef migrations remove

Usuwa ostatniej migracji.Removes the last migration.

Opcje:Options:

-f-f --wymusić--force Przywróć migracji, jeśli została zastosowana do bazy danych.Revert the migration if it has been applied to the database.

skrypt migracje ef DotNetdotnet ef migrations script

Generuje skrypt SQL z migracji.Generates a SQL script from migrations.

Argumenty:Arguments:

<Z ><FROM> Początkowy migracji.The starting migration. Wartość domyślna to 0 (początkowej bazy danych).Defaults to 0 (the initial database).
<ABY ><TO> Końcowy migracji.The ending migration. Domyślnie ostatni migracji.Defaults to the last migration.

Opcje:Options:

-o-o --dane wyjściowe <pliku >--output <FILE> Plik można zapisać wynik.The file to write the result to.
-i-i --idempotentności--idempotent Generuj skrypt, który może być używany z bazy danych w każdej migracji.Generate a script that can be used on a database at any migration.