.NETCore3.1でのスキャフォールディングでMVCを生成する


はじめに

「MVCを生成する」とか言いながら、生成するのは「VC」だけです。

さて、.NETCore自体の構築及びDBとの導通については既に完了しているものとして進めます。
構築から始めたいという方はいくつかエントリーがありますので、探してみてください。

もしSQLServer以外で組みたいという方がいらっしゃいましたら以下のエントリーをどうぞ。
.NETCore3.1+MariaDB & Identity導入

DBの用意

DB+任意のTableを構築しておいてください。

Modelの実装

Models以下に任意のModelを用意しておいてください。

DbContextの実装

DbContextを用意しておいてください。
Pathは状況によって違うかもしれませんね。

packageの導入

cd your/work/directory
dotnet tool install -g dotnet-aspnet-codegenerator
dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Design

いざ実行

dotnet aspnet-codegenerator controller -name YourController -m YourModel -dc YourDbContext -outDir YourDirectory -udl

コマンドは以下の解説を元にお好きにどうぞ。

Option Name Memo
-name YourController 作成されるコントローラ名。URLにもなるので、その点を意識して命名したい
-m YourModel スキャフォールディング対象のModel名
-dc YourDbContext DbContext名
-outDir YourDirectory 新Controllerの生成先Directory。通常は「Controllers」で良い

結果

何事もなければ指定した-outDir以下に新Controllerが、Views以下にCRUDのView群が、それぞれ自動生成される。
生まれたての段階でも速攻でDBに値を入れることもできる。

ひとりごと

Inputの不要なカラムの分までInput作ってくれたりするのでアレなとこはありますが、まま工数削減できるのではないでしょうか。
その辺はあらかじめModelに細工しておけば回避できるのかな?