Scaffold-DbContext コマンドで生成されるコードの出力先をプロジェクトのサブディレクトリにしたい
Scaffold-DbContext コマンドで生成されるコードの出力先をプロジェクトのサブディレクトリにする設定を紹介します。
概要
Scaffold-DbContext コマンドで指定したデータベースのDbContextクラスとテーブル構造のオブジェクトのコードが生成されますが、
デフォルトの設定の場合、プロジェクトディレクトリの直下に配置されます。テーブル数が少ない場合は問題ないのですが、テーブル数が多いデータベースの場合、
大量のコードファイルがプロジェクトディレクトリの直下に配置され管理しづらいです。
この記事では、Scaffold-DbContext コマンドのOutputDirオプションを利用してで生成されるコードを指定したサブディレクトリに配置する手順を紹介します。
デフォルトの動作
Microsoft.EntityFrameworkCore.Design パッケージと、Microsoft.EntityFrameworkCore.Toolsパッケージをインストールします。
プロジェクトを作成し、NuGetパッケージマネージャーコンソールを開き次のコマンドを実行します。
Scaffold-DbContext '(データベースの接続文字列)' Microsoft.EntityFrameworkCore.SqlServer
実行すると、データベースの内容からDbContextとテーブル構造のオブジェクトのコードが生成されます。
生成されたコードはプロジェクトディレクトリの直下に配置されるため、プログラムのコードとデータベースモデルのコードが混ざってしまい、管理が大変になります。
Scaffold-DbContext コマンドの出力を指定したディレクトリに出力する
Scaffold-DbContext コマンドで生成されるコードを指定したディレクトリに出力する場合は、-OutputDir オプションを指定します。
次のコマンドを実行します。
Scaffold-DbContext '(データベースの接続文字列)' Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
-OutputDir Models
を指定することで、生成されたコードをプロジェクトディレクトリの"Models"サブディレクトリに出力します。
コマンドを実行すると、ソリューションエクスプローラーのプロジェクトの中に "Models"ディレクトリが作成されます。
Models ディレクトリのノードを展開すると、Scaffold-DbContext コマンドで生成されたコードが配置されていることが確認できます。
Scaffold-DbContext の生成ファイルをプロジェクトのサブディレクトリに配置することができました。
著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用