Setup DB First EntityFrameworkCore SQL Server
はじめに
.Net Core で EntityFramework を使う際に .NET Standard と違って試行錯誤したのでDBファーストで使用した手順をまとめます。
対象のフレームワーク
今回は.NET Core 3.1を使用しました。
開発者用 PowerShell
コマンドは全て開発者用PowerShellから実行します。
カレントディレクトリはプロジェクトルートです。
PS C:\develop\WebApplication1\WebApplication1> dir ディレクトリ: C:\develop\WebApplication1\WebApplication1 Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 2020/12/20 17:30 bin d----- 2020/12/20 17:30 obj d----- 2020/12/20 17:29 Properties -a---- 2020/12/20 17:29 162 appsettings.Development.json -a---- 2020/12/20 17:29 192 appsettings.json -a---- 2020/12/20 17:30 723 Program.cs -a---- 2020/12/20 17:30 1295 Startup.cs -a---- 2020/12/20 17:29 148 WebApplication1.csproj
dotnet ef ツールのインストール
.NET Core 3.0 以降は .NET SDK に dotnet ef ツールが含まれていないため
初めて使用する場合はインストールが必要です。
dotnet tool update --global dotnet-ef
Microsoft.EntityFrameworkCore.Design の追加
スキャフォールディングに必要な Design パッケージを追加します。
dotnet add package Microsoft.EntityFrameworkCore.Design
dotnet add package Microsoft.EntityFrameworkCore.SqlServer の追加
スキャフォールディングに必要なデータベースプロバイダーを追加します。
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
Models フォルダの作成
コードを保存する Models フォルダを作成します。
スキャフォールディング
データベースから DBContext と Entity のコードを Models フォルダに作成します。
dotnet ef dbcontext scaffold "Server=[ホスト名];Database=[データベース名];persist security info=True;user id=[ユーザーID];password=[パスワード];MultipleActiveResultSets=True" Microsoft.EntityFrameworkCore.SqlServer -o Models
確認
EntityFrameworkCoreを使用してデータベースからコードが作成できました。