データファーストでモデルファイルを作成する

DBにテーブルを構築後モデルファイルを自動で生成するにはプロジェクトフォルダ( .sln ファイルがあるディレクトリの1つ下の階層)から PowerShell を立ち上げ、次のようにコマンドを入力します

コマンド の書き方

dotnet ef dbcontext scaffold  <connection_string>  <provider>
dotnet ef dbcontext scaffold "Server=データベースサーバ名;Database=ScaffoldDB;Trusted_Connection=True" Microsoft.EntityFrameworkCore.SqlServer -o Models

例 :

DBサーバ : MYPC\SQLEXPRESS
データベース : MyDb

の場合

dotnet ef dbcontext scaffold "Server=MYPC\SQLEXPRESS;Database=MyDb;Trusted_Connection=True" Microsoft.EntityFrameworkCore.SqlServer -o Models

● すでにモデルファイルが生成済みなので上書きできないエラーが出る場合

-f オプションで上書きします。(一番最後に -f をつけて実行します)

dotnet ef dbcontext scaffold "Server=データベースサーバ名;Database=ScaffoldDB;Trusted_Connection=True" Microsoft.EntityFrameworkCore.SqlServer -o Models -f

● dotnet ef コマンドが使えない場合

1. .csproj ファイルの Project 配下に以下のコードを追加

<ItemGroup>
  <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
</ItemGroup>

2. コマンド

dotnet restore

を実行すると dotnet ef コマンドが使用できるようになります。

No.1230
07/04 12:32

edit