ASP.NET Core データベース ファースト(db first)でモデルを生成する

ASP.NET Core データベース ファースト(db first)でモデルを生成する

ASP.NET Coreでデータベース ファースト(db first)でモデルを生成するまでの手順を記述してます。.NET Coreのバージョンは3.0.1を使用してます。

環境

  • OS windows10 pro
  • IDE Visual Studio 2019
  • .NET Core 3.0.1
  • SQL Server2019 Express

DB作成

SQL Server側でDBを作成しておきます。
※ここでは「test」というDBに「human」というテーブルを作成してます。

パッケージ追加

NuGetパッケージから以下の4つをインストールしておきます。

  • Microsoft.EntityFrameworkCore
  • Microsoft.EntityFrameworkCore.SqlServer
  • Microsoft.EntityFrameworkCore.SqlServer.Design
  • Microsoft.EntityFrameworkCore.Tools

モデル生成

「dotnet-ef」がインストールされていなければ、インストールしておきます。

dotnet tool install --global dotnet-ef

DBの接続情報は、以下の内容で「dotnet ef」を実行します。

サーバー localhost
DB名 sample
ユーザー名 sa
パスワード password

dotnet ef dbcontext scaffold "Server=localhost;Database=test;persist security info=True;user id=sa;password=password;MultipleActiveResultSets=True" Microsoft.EntityFrameworkCore.SqlServer -o Models

「Models」配下に「Human.cs」が生成されます。

更新する場合は「-f」を使用します。

dotnet ef dbcontext scaffold "Server=localhost;Database=test;persist security info=True;user id=sa;password=password;MultipleActiveResultSets=True" Microsoft.EntityFrameworkCore.SqlServer -o Models -f

エラー

以下のエラーが出る場合は、

No project was found. Change the current working directory or use the --project option.

プロパティからパスを確認して、powershellで対象のパスまで移動して実行します。