Outils de ligne de commande du .NET Core EFEF Core .NET Command-line Tools

Les outils de ligne de commande de .NET Entity Framework Core sont une extension multiplateforme dotnet commande, qui fait partie de la du SDK .NET Core.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.

Conseil

Si vous utilisez Visual Studio, nous vous recommandons de [les outils PMC] 1 au lieu de cela car ils fournissent une expérience plus intégrée.If you're using Visual Studio, we recommend the PMC Tools instead since they provide a more integrated experience.

Installation des outilsInstalling the tools

Note

Le SDK .NET Core 2.1.300 de version et la plus récente inclut dotnet ef commandes qui sont compatibles avec EF Core 2.0 et versions ultérieures.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. Par conséquent, si vous utilisez des versions récentes du SDK .NET Core et le runtime EF Core, aucune installation n’est requise et vous pouvez ignorer le reste de cette section.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.

En revanche, le dotnet ef outil de relation contenant-contenu dans la version du SDK .NET Core 2.1.300 et les versions ultérieures n’est pas compatible avec la version d’EF Core 1.0 et 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. Avant que vous pouvez travailler avec un projet qui utilise les versions antérieures d’EF Core sur un ordinateur disposant du SDK .NET Core 2.1.300 ou version ultérieure, vous devez également installer la version 2.1.200 ou une version antérieure du Kit de développement et de configurer l’application pour utiliser cette ancienne version en modifiant son global.json fichier.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. Ce fichier est normalement inclus dans le répertoire de solution (une au-dessus du projet).This file is normally included in the solution directory (one above the project). Vous pouvez ensuite poursuivre l’instruction 2161DS ci-dessous.Then you can proceed with the installlation instruction below.

Pour les versions précédentes du SDK .NET Core, vous pouvez installer les outils de ligne de commande EF Core .NET à l’aide de ces étapes :For previous versions of the .NET Core SDK, you can install the EF Core .NET Command-line Tools using these steps:

  1. Modifiez le fichier projet et ajoutez Microsoft.EntityFrameworkCore.Tools.DotNet comme un élément DotNetCliToolReference (voir ci-dessous)Edit the project file and add Microsoft.EntityFrameworkCore.Tools.DotNet as a DotNetCliToolReference item (See below)

  2. Exécutez les commandes suivantes :Run the following commands:

    dotnet add package Microsoft.EntityFrameworkCore.Design
    dotnet restore
    

Le projet résultant doit ressembler à ceci :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>

Note

Une référence de package avec PrivateAssets="All" signifie qu’il n’est pas exposé à des projets qui font référence à ce projet, qui est particulièrement utile pour les packages qui sont utilisés en général uniquement pendant le développement.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.

Si vous l’avez fait tout bien, il se peut que vous devez être en mesure d’exécuter correctement la commande suivante dans une invite de commandes.If you did everything right, you should be able to successfully run the following command in a command prompt.

dotnet ef

L’utilisation des outilsUsing the tools

Chaque fois que vous appelez une commande, deux projets sont impliqués :Whenever you invoke a command, there are two projects involved:

Le projet cible contient les fichiers qui sont ajoutés (ou dans certains cas supprimés).The target project is where any files are added (or in some cases removed). Le projet cible par défaut pour le projet dans le répertoire actif, mais peut être modifié à l’aide de la --project option.The target project defaults to the project in the current directory, but can be changed using the --project option.

Le projet de démarrage est le projet qu’émulent les outils durant l’exécution du code de votre projet.The startup project is the one emulated by the tools when executing your project's code. Également par défaut est le projet dans le répertoire actif, elle peut être modifié à l’aide de la --startup-project option.It also defaults to the project in the current directory, but can be changed using the --startup-project option.

Note

Par exemple, la mise à jour de la base de données de votre application web avec EF Core est installé dans un autre projet se présenterait comme suit : dotnet ef database update --project {project-path} (à partir de votre répertoire d’applications 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)

Options courantes :Common options:

--json Afficher la sortie JSON.Show JSON output.
-c-c --context <DBCONTEXT> DbContext à utiliser.The DbContext to use.
-p-p --project <PROJECT> Le projet à utiliser.The project to use.
-s-s --startup-project <PROJECT> Le projet de démarrage à utiliser.The startup project to use.
--framework <FRAMEWORK> Le framework cible.The target framework.
--configuration <CONFIGURATION> Configuration à utiliser.The configuration to use.
--runtime <IDENTIFIER> Le runtime à utiliser.The runtime to use.
-h-h --help Afficher les informations d’aide.Show help information.
-v-v --verbose Afficher la sortie détaillée.Show verbose output.
--no-color Ne pas mettre en couleur sortie.Don't colorize output.
--prefix-output Préfixe avec le niveau de sortie.Prefix output with level.

Conseil

Pour spécifier l’environnement ASP.NET Core, définissez le ASPNETCORE_ENVIRONMENT variable d’environnement avant l’exécution.To specify the ASP.NET Core environment, set the ASPNETCORE_ENVIRONMENT environment variable before running.

CommandesCommands

liste de base de données ef dotnetdotnet ef database drop

Supprime la base de données.Drops the database.

Options :Options:

-f-f --force Ne pas confirmer.Don't confirm.
--dry-run Afficher la base de données serait supprimée, mais ne la supprimez.Show which database would be dropped, but don't drop it.

mise à jour de la base de données DotNet efdotnet ef database update

Met à jour la base de données pour une migration spécifiée.Updates the database to a specified migration.

Arguments :Arguments:

<MIGRATION> La migration de la cible.The target migration. Si 0, toutes les migrations seront annulées.If 0, all migrations will be reverted. Valeur par défaut est la dernière migration.Defaults to the last migration.

informations de dbcontext ef dotnetdotnet ef dbcontext info

Obtient des informations sur un type DbContext.Gets information about a DbContext type.

liste de dbcontext ef dotnetdotnet ef dbcontext list

Répertorie les types de DbContext disponibles.Lists available DbContext types.

structure de dbcontext ef dotnetdotnet ef dbcontext scaffold

Permet de générer automatiquement un types DbContext et d’entité pour une base de données.Scaffolds a DbContext and entity types for a database.

Arguments :Arguments:

<CONNECTION> La chaîne de connexion à la base de données.The connection string to the database.
<PROVIDER> Le fournisseur à utiliser.The provider to use. (par exemple, Microsoft.EntityFrameworkCore.SqlServer)(for example, Microsoft.EntityFrameworkCore.SqlServer)

Options :Options:

-d-d --data-annotations Utilisez des attributs pour configurer le modèle (le cas échéant).Use attributes to configure the model (where possible). Si omis, uniquement l’API fluent est utilisé.If omitted, only the fluent API is used.
-c-c --context <NAME> Le nom de la classe DbContext.The name of the DbContext.
--context-dir <PATH> Le répertoire de placer le fichier de DbContext dans.The directory to put DbContext file in. Chemins d’accès sont relatif au répertoire de projet.Paths are relative to the project directory.
-f-f --force Remplacer les fichiers existants.Overwrite existing files.
-o-o --output-dir <PATH> Répertoire à placer les fichiers dans.The directory to put files in. Chemins d’accès sont relatif au répertoire de projet.Paths are relative to the project directory.
--schema <SCHEMA_NAME>... Les schémas des tables pour générer des types d’entité.The schemas of tables to generate entity types for.
-t-t --table <TABLE_NAME>...--table <TABLE_NAME>... Les tables pour générer des types d’entité.The tables to generate entity types for.
--use-database-names Utilisez des noms de table et de colonne directement à partir de la base de données.Use table and column names directly from the database.

ajouter des migrations d’ef dotnetdotnet ef migrations add

Ajoute une nouvelle migration.Adds a new migration.

Arguments :Arguments:

<NAME> Le nom de la migration.The name of the migration.

Options :Options:

-o-o --output-dir <PATH> --output-dir <PATH> Le répertoire (et espace de noms secondaire) à utiliser.The directory (and sub-namespace) to use. Chemins d’accès sont relatif au répertoire de projet.Paths are relative to the project directory. La valeur par défaut est « Migrations ».Defaults to "Migrations".

liste de dotnet ef migrationsdotnet ef migrations list

Répertorie les migrations disponibles.Lists available migrations.

supprimer des migrations d’ef dotnetdotnet ef migrations remove

Supprime la dernière migration.Removes the last migration.

Options :Options:

-f-f --force Rétablir la migration s’il a été appliqué à la base de données.Revert the migration if it has been applied to the database.

script de dotnet ef migrationsdotnet ef migrations script

Génère un script SQL à partir de migrations.Generates a SQL script from migrations.

Arguments :Arguments:

<FROM> La migration de départ.The starting migration. La valeur par défaut est 0 (la base de données initiale).Defaults to 0 (the initial database).
<TO> La migration de fin.The ending migration. Valeur par défaut est la dernière migration.Defaults to the last migration.

Options :Options:

-o-o --output <FILE> Fichier dans lequel écrire le résultat.The file to write the result to.
-i-i --idempotent Générer un script qui peut être utilisé sur toute migration d’une base de données.Generate a script that can be used on a database at any migration.