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

Les outils de ligne de commande Entity Framework Core .NET sont une extension de l’inter-plateformes dotnet commande, qui fait partie de la le Kit de développement .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 à la place car ils fournissent une expérience 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 .NET Core SDK version 2.1.300 et inclut plus récente 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 de .NET Core SDK 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 contenu dans la version du Kit de développement .NET Core 2.1.300 et les versions ultérieures n’est pas compatible avec la version 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 ces versions antérieures d’EF principal sur un ordinateur qui a le Kit de développement logiciel .NET Core 2.1.300 ou version plus récente, vous devez également installer la version 2.1.200 ou antérieure du Kit de développement et de configurer l’application pour utiliser cette version antérieure 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 Kit de développement .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 au package avec PrivateAssets="All" signifie qu’il n’est pas exposé à des projets qui font référence à ce projet, ce 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 avez tout à droite, 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, il existe deux projets concerné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 du projet dans le répertoire actif, mais peut être modifié à l’aide de la --projet 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, il peut être modifié à l’aide de la --projet de démarrage 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 qui a un cœur EF installé dans un autre projet se présente comme suit : dotnet ef database update --project {project-path} (à partir de votre répertoire d’application 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--json Afficher la sortie JSON.Show JSON output.
-c-c --contexte <DBCONTEXT >--context <DBCONTEXT> DbContext à utiliser.The DbContext to use.
-p-p --projet <projet >--project <PROJECT> Le projet à utiliser.The project to use.
-s-s --projet de démarrage <projet >--startup-project <PROJECT> Le projet de démarrage à utiliser.The startup project to use.
--framework <FRAMEWORK >--framework <FRAMEWORK> Le framework cible.The target framework.
--configuration <CONFIGURATION >--configuration <CONFIGURATION> Configuration à utiliser.The configuration to use.
--runtime <identificateur >--runtime <IDENTIFIER> Le runtime à utiliser.The runtime to use.
-h-h --aide--help Afficher les informations d’aide.Show help information.
-v-v --détaillé--verbose Afficher la sortie des commentaires.Show verbose output.
--Aucune-couleur--no-color Ne pas redéfinir la sortie.Don't colorize output.
--sortie de préfixe--prefix-output Préfixe dont le niveau de sortie.Prefix output with level.

Conseil

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

CommandesCommands

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

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

Options :Options:

-f-f --forcer--force Ne pas confirmer.Don't confirm.
--exécution--dry-run Afficher la base de données qui seront supprimés, mais ne pas supprimer.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 ><MIGRATION> La migration de cible.The target migration. Si 0, toutes les migrations vont être 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 de DbContext.Gets information about a DbContext type.

liste de dbcontext ef dotnetdotnet ef dbcontext list

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

structure de dbcontext ef dotnetdotnet ef dbcontext scaffold

Structures un types DbContext et l’entité pour une base de données.Scaffolds a DbContext and entity types for a database.

Arguments :Arguments:

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

Options :Options:

-d-d --annotations de données--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 --contexte <nom >--context <NAME> Le nom de la DbContext.The name of the DbContext.
--contexte-dir <chemin d’accès >--context-dir <PATH> Répertoire à placer dans DbContext.The directory to put DbContext file in. Chemins d’accès sont relatif au répertoire du projet.Paths are relative to the project directory.
-f-f --forcer--force Remplacer les fichiers existants.Overwrite existing files.
-o-o --sortie-dir <chemin d’accès >--output-dir <PATH> Répertoire à placer les fichiers dans.The directory to put files in. Chemins d’accès sont relatif au répertoire du projet.Paths are relative to the project directory.
--schéma <SCHEMA_NAME >...--schema <SCHEMA_NAME>... Les schémas des tables pour générer des types d’entités.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és.The tables to generate entity types for.
--noms de base de données d’utilisation--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:

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

Options :Options:

-o-o --sortie-dir <chemin d’accès >--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 du projet.Paths are relative to the project directory. La valeur par défaut est « Migration ».Defaults to "Migrations".

liste de migrations ef dotnetdotnet 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 --forcer--force Rétablir la migration si elle a été appliquée à la base de données.Revert the migration if it has been applied to the database.

script de migrations ef dotnetdotnet ef migrations script

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

Arguments :Arguments:

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

Options :Options:

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