Ferramentas de linha de comando do EF Core .NETEF Core .NET Command-line Tools

As ferramentas de linha de comando Entity Framework Core .NET são uma extensão de várias plataformas dotnet comando, que é parte do .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.

Dica

Se você estiver usando o Visual Studio, é recomendável as ferramentas de PMC em vez disso, uma vez que eles fornecem uma experiência mais integrada.If you're using Visual Studio, we recommend the PMC Tools instead since they provide a more integrated experience.

Instalando as ferramentasInstalling the tools

Instale as ferramentas de linha de comando do EF Core .NET usando estas etapas:Install the EF Core .NET Command-line Tools using these steps:

  1. Edite o arquivo de projeto e adicionar Microsoft.EntityFrameworkCore.Tools.DotNet como um item de DotNetCliToolReference (veja abaixo)Edit the project file and add Microsoft.EntityFrameworkCore.Tools.DotNet as a DotNetCliToolReference item (See below)
  2. Execute os seguintes comandos:Run the following commands:

    dotnet add package Microsoft.EntityFrameworkCore.Design
    dotnet restore
    

O projeto resultante deve ter esta aparência: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>

Observação

Uma referência de pacote com PrivateAssets="All" significa que ela não está exposta a projetos que fazem referência a este projeto, o que é especialmente útil para os pacotes que normalmente são usados somente durante o desenvolvimento.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.

Se você fez tudo certo, você poderá executar com êxito o comando a seguir em um prompt de comando.If you did everything right, you should be able to successfully run the following command in a command prompt.

dotnet ef

Usando as ferramentasUsing the tools

Sempre que você chamar um comando, há dois projetos envolvidas:Whenever you invoke a command, there are two projects involved:

O projeto de destino é onde todos os arquivos são adicionados (ou, em alguns casos removidos).The target project is where any files are added (or in some cases removed). O projeto de destino por padrão para o projeto no diretório atual, mas pode ser alterado usando o – projeto opção.The target project defaults to the project in the current directory, but can be changed using the --project option.

O projeto de inicialização é emulado pelas ferramentas durante a execução de código do projeto.The startup project is the one emulated by the tools when executing your project's code. Ele também usa como padrão o projeto no diretório atual, mas pode ser alterado usando o – projeto de inicialização opção.It also defaults to the project in the current directory, but can be changed using the --startup-project option.

Opções comuns:Common options:

– o json--json Mostra saída JSON.Show JSON output.
-c-c – contexto <DBCONTEXT >--context <DBCONTEXT> O DbContext para usar.The DbContext to use.
-P-p – projeto <projeto >--project <PROJECT> O projeto a usar.The project to use.
-s-s – projeto de inicialização <projeto >--startup-project <PROJECT> O projeto de inicialização para usar.The startup project to use.
– framework <FRAMEWORK >--framework <FRAMEWORK> A estrutura de destino.The target framework.
– configuração <Configuração >--configuration <CONFIGURATION> A configuração para uso.The configuration to use.
o tempo de execução – <identificador >--runtime <IDENTIFIER> O tempo de execução para usar.The runtime to use.
-h-h – Ajuda--help Mostra informações de Ajuda.Show help information.
-v-v -verbose--verbose Mostra saída detalhada.Show verbose output.
– sem cor--no-color Não colorir saída.Don't colorize output.
-saída de prefixo--prefix-output Prefixo com o nível de saída.Prefix output with level.

Dica

Para especificar o ambiente do ASP.NET Core, defina o ASPNETCORE_ENVIRONMENT variável de ambiente antes de executar.To specify the ASP.NET Core environment, set the ASPNETCORE_ENVIRONMENT environment variable before running.

ComandosCommands

remoção de banco de dados de ef dotnetdotnet ef database drop

Descarta o banco de dados.Drops the database.

Opções:Options:

-f-f -force--force Não confirme.Don't confirm.
-Execute--dry-run Mostrar qual banco de dados deve ser descartado, mas não solte-o.Show which database would be dropped, but don't drop it.

atualização de banco de dados de ef dotnetdotnet ef database update

Atualiza o banco de dados para uma migração especificada.Updates the database to a specified migration.

Argumentos:Arguments:

<MIGRAÇÃO ><MIGRATION> A migração de destino.The target migration. Se for 0, todas as migrações serão revertidas.If 0, all migrations will be reverted. O padrão é para a última migração.Defaults to the last migration.

informações do dotnet ef dbcontextdotnet ef dbcontext info

Obtém informações sobre um tipo DbContext.Gets information about a DbContext type.

lista de dbcontext ef dotnetdotnet ef dbcontext list

Lista os tipos disponíveis de DbContext.Lists available DbContext types.

scaffold de dbcontext ef dotnetdotnet ef dbcontext scaffold

Scaffolds um tipos DbContext e entidade para um banco de dados.Scaffolds a DbContext and entity types for a database.

Argumentos:Arguments:

<CONEXÃO ><CONNECTION> A cadeia de caracteres de conexão para o banco de dados.The connection string to the database.
<PROVEDOR ><PROVIDER> O provedor a ser usado.The provider to use. (Por ex.:(E.g. Microsoft.EntityFrameworkCore.SqlServer)Microsoft.EntityFrameworkCore.SqlServer)

Opções:Options:

-d-d – as anotações de dados--data-annotations Use atributos para configurar o modelo (onde for possível).Use attributes to configure the model (where possible). Se omitido, somente a API fluente é usada.If omitted, only the fluent API is used.
-c-c – contexto <nome >--context <NAME> O nome do DbContext.The name of the DbContext.
-f-f -force--force Substitua arquivos existentes.Overwrite existing files.
-o-o -dir saída <caminho >--output-dir <PATH> O diretório de colocar arquivos em.The directory to put files in. Caminhos são relativas ao diretório do projeto.Paths are relative to the project directory.
– esquema <SCHEMA_NAME >...--schema <SCHEMA_NAME>... Os esquemas de tabelas para gerar tipos de entidade para.The schemas of tables to generate entity types for.
-t-t -tabela <TABLE_NAME >...--table <TABLE_NAME>... As tabelas para gerar tipos de entidade para.The tables to generate entity types for.
– use nomes de banco de dados--use-database-names Use nomes de tabela e coluna diretamente do banco de dados.Use table and column names directly from the database.

Adicionar migrações de ef dotnetdotnet ef migrations add

Adiciona uma nova migração.Adds a new migration.

Argumentos:Arguments:

<NOME ><NAME> O nome da migração.The name of the migration.

Opções:Options:

-o-o -dir saída <caminho >--output-dir <PATH> O diretório (e sub-namespace) a ser usado.The directory (and sub-namespace) to use. Caminhos são relativas ao diretório do projeto.Paths are relative to the project directory. O padrão é "Migrações".Defaults to "Migrations".

lista de migrações ef dotnetdotnet ef migrations list

Lista as migrações disponíveis.Lists available migrations.

Remova as migrações de ef dotnetdotnet ef migrations remove

Remove a última migração.Removes the last migration.

Opções:Options:

-f-f -force--force Não verificar se a migração tiver sido aplicada ao banco de dados.Don't check to see if the migration has been applied to the database.

script de migrações ef dotnetdotnet ef migrations script

Gera um script SQL de migrações.Generates a SQL script from migrations.

Argumentos:Arguments:

<DE ><FROM> A migração inicial.The starting migration. O padrão é 0 (o banco de dados inicial).Defaults to 0 (the initial database).
<PARA ><TO> A migração final.The ending migration. O padrão é para a última migração.Defaults to the last migration.

Opções:Options:

-o-o -saída <arquivo >--output <FILE> O arquivo para gravar o resultado.The file to write the result to.
-i-i – idempotente--idempotent Gere um script que pode ser usado em um banco de dados em qualquer migração.Generate a script that can be used on a database at any migration.