EF コア .NET コマンド ライン ツールEF Core .NET Command-line Tools

Entity Framework Core .NET コマンド ライン ツールは、クロス プラットフォーム拡張機能dotnetコマンドでは、一部の.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.


Visual Studio を使用するかどうか、ことをお勧めPMC ツールより統合されたエクスペリエンスを提供するために代わりにします。If you're using Visual Studio, we recommend the PMC Tools instead since they provide a more integrated experience.

ツールのインストールInstalling the tools

次の手順を使用して EF コア .NET コマンド ライン ツールをインストールします。Install the EF Core .NET Command-line Tools using these steps:

  1. プロジェクト ファイルを編集し、DotNetCliToolReference 項目 (下記参照) として Microsoft.EntityFrameworkCore.Tools.DotNet を追加Edit the project file and add Microsoft.EntityFrameworkCore.Tools.DotNet as a DotNetCliToolReference item (See below)
  2. 次のコマンドを実行します。Run the following commands:

    dotnet add package Microsoft.EntityFrameworkCore.Design
    dotnet restore

作成されたプロジェクトは、次のようになります。The resulting project should look something like this:

<Project Sdk="Microsoft.NET.Sdk">
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design"
                      PrivateAssets="All" />
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet"
                            Version="2.0.0" />


パッケージの参照をPrivateAssets="All"開発時にのみ使用される通常パッケージに特に便利ですが、このプロジェクトを参照しているプロジェクトに公開されていないことを意味します。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.

すべての権利を行った場合は、コマンド プロンプトで次のコマンドを正常に実行することができます。If you did everything right, you should be able to successfully run the following command in a command prompt.

dotnet ef

ツールを使用します。Using the tools

コマンドを呼び出すときに 2 つのプロジェクト。Whenever you invoke a command, there are two projects involved:

ターゲット プロジェクトがすべてのファイルが追加された (または場合によっては削除) します。The target project is where any files are added (or in some cases removed). ターゲット プロジェクトが、現在のディレクトリで、プロジェクトの既定値を使用して変更することが、 --プロジェクトオプション。The target project defaults to the project in the current directory, but can be changed using the --project option.

スタートアップ プロジェクトは、プロジェクトのコードを実行すると、ツールでエミュレートです。The startup project is the one emulated by the tools when executing your project's code. また、現在のディレクトリで、プロジェクトの既定値を使用して変更することができます、 --スタートアップ プロジェクトオプション。It also defaults to the project in the current directory, but can be changed using the --startup-project option.

一般的なオプション:Common options:

-json--json JSON の出力を表示します。Show JSON output.
-c-c --コンテキスト<DBCONTEXT >--context <DBCONTEXT> 使用する DbContext です。The DbContext to use.
-P-p --プロジェクト<プロジェクト >--project <PROJECT> 使用するプロジェクトです。The project to use.
-s-s -スタートアップ プロジェクト<プロジェクト >--startup-project <PROJECT> 使用するスタートアップ プロジェクトです。The startup project to use.
--framework <FRAMEWORK >--framework <FRAMEWORK> ターゲット フレームワーク。The target framework.
--構成<構成 >--configuration <CONFIGURATION> 使用する構成。The configuration to use.
--ランタイム<識別子 >--runtime <IDENTIFIER> 使用するランタイム。The runtime to use.
-h-h -ヘルプ--help ヘルプ情報を表示します。Show help information.
-v-v -詳細--verbose 詳細出力を表示します。Show verbose output.
--色なし--no-color しないと、出力が色分けして表示します。Don't colorize output.
--プレフィックス出力--prefix-output 出力レベルをプレフィックスします。Prefix output with level.


ASP.NET Core 環境を指定するには、設定、 ASPNETCORE_ENVIRONMENT実行する前に環境変数。To specify the ASP.NET Core environment, set the ASPNETCORE_ENVIRONMENT environment variable before running.


dotnet ef データベースの削除dotnet ef database drop

データベースを削除します。Drops the database.


-f-f --強制--force しないことを確認します。Don't confirm.
--予行--dry-run データベースは削除しますが、それを削除しないを表示します。Show which database would be dropped, but don't drop it.

dotnet ef データベースの更新dotnet ef database update

指定された移行するには、データベースを更新します。Updates the database to a specified migration.


<移行 ><MIGRATION> Target の移行。The target migration. 0 の場合、すべての移行は元に戻せません。If 0, all migrations will be reverted. 既定値は最後に移行します。Defaults to the last migration.

dotnet ef dbcontext 情報dotnet ef dbcontext info

DbContext 型に関する情報を取得します。Gets information about a DbContext type.

dotnet ef dbcontext 一覧dotnet ef dbcontext list

使用可能な DbContext 型を一覧表示します。Lists available DbContext types.

dotnet ef dbcontext scaffolddotnet ef dbcontext scaffold

スキャフォールディング データベースの DbContext とエンティティの型。Scaffolds a DbContext and entity types for a database.


<接続 ><CONNECTION> データベースへの接続文字列。The connection string to the database.
<プロバイダー ><PROVIDER> 使用するプロバイダー。The provider to use. (例:(E.g. Microsoft.EntityFrameworkCore.SqlServer)Microsoft.EntityFrameworkCore.SqlServer)


-d-d -データ注釈--data-annotations 属性を使用すると、(可能な場合)、モデルを構成できます。Use attributes to configure the model (where possible). 省略すると、fluent API のみが使用されます。If omitted, only the fluent API is used.
-c-c --コンテキスト<名 >--context <NAME> DbContext の名前。The name of the DbContext.
-f-f --強制--force 既存のファイルを上書きします。Overwrite existing files.
-o-o --出力 dir<パス >--output-dir <PATH> ファイルを置くディレクトリです。The directory to put files in. パスでは、プロジェクト ディレクトリに対して相対的です。Paths are relative to the project directory.
-スキーマ<SCHEMA_NAME >.--schema <SCHEMA_NAME>... エンティティ型を生成するテーブルのスキーマです。The schemas of tables to generate entity types for.
-t-t -テーブル<TABLE_NAME >.--table <TABLE_NAME>... エンティティ型を生成するテーブル。The tables to generate entity types for.
--データベース名を使用して--use-database-names データベースから直接テーブルおよび列名を使用します。Use table and column names directly from the database.

dotnet ef 移行を追加します。dotnet ef migrations add

新しい移行を追加します。Adds a new migration.


<名 ><NAME> 移行の名前。The name of the migration.


-o-o --出力 dir<パス >--output-dir <PATH> ディレクトリ (およびサブ名前空間) を使用します。The directory (and sub-namespace) to use. パスでは、プロジェクト ディレクトリに対して相対的です。Paths are relative to the project directory. 既定値は「移行」です。Defaults to "Migrations".

dotnet ef 移行リストdotnet ef migrations list

使用可能な移行を一覧表示します。Lists available migrations.

dotnet ef 移行を削除します。dotnet ef migrations remove

前回の移行を削除します。Removes the last migration.


-f-f --強制--force 移行をデータベースに適用されているかどうかをチェックしないでください。Don't check to see if the migration has been applied to the database.

dotnet ef 移行スクリプトdotnet ef migrations script

移行からの SQL スクリプトを生成します。Generates a SQL script from migrations.


<><FROM> 開始の移行。The starting migration. 既定値は 0 (最初のデータベース)。Defaults to 0 (the initial database).
<><TO> 終了の移行。The ending migration. 既定値は最後に移行します。Defaults to the last migration.


-o-o --出力<ファイル >--output <FILE> 結果を書き込むファイルです。The file to write the result to.
-i-i べき等----idempotent すべての移行でのデータベースで使用できるスクリプトを生成します。Generate a script that can be used on a database at any migration.