LoginSignup
17
17

More than 5 years have passed since last update.

EntityFramework CoreのDatabase First Approachで、Modelを作成する

Posted at

EntityFramework Coreで、DBからModelクラスを生成する

ASP.netで開発されている技術者の方は、Visual StudioのADO.NETを使って、モデルの生成をされているかと思います。
しかし.Net Coreの世代になるとマルチプラットフォームになるため便利なGUIのツールは用意されなくなりました。
もちろん出来なくなった訳ではなく、コマンドラインから実行することができます。
これからの主流は、.Net Coreになりますので、コマンドラインからのModel作成を調査してみました。

テストプロジェクトの作成

ASP.Net Coreのプロジェクトを作成します。
image.png

Packageの設定

下記の4つのパッケージをNuGetで登録します。

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

image.png

csprojファイルに、定義を追加

csprojファイルにDotNetCilToolReferenceを追記します。

DbFirstApproach.csproj
<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.1.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer.Design" Version="1.1.5" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />
  </ItemGroup>
  <ItemGroup>
    <DotNetCilToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />
  </ItemGroup>
</Project>

開発者コマンドの実行

開発者コマンド プロンプト for VS 2017を起動して、プロジェクトルートへ移動します。

Model作成コマンド

dotnet ef dbcontext scaffold "Server=[サーバー];Database=[DB名];persist security info=True;user id=[ID];password=[PW];MultipleActiveResultSets=True" Microsoft.EntityFrameworkCore.SqlServer -o Models

更新コマンド

-f オプションで、強制更新されるみたいです。

dotnet ef dbcontext scaffold "Server=[サーバー];Database=[DB名];persist security info=True;user id=[ID];password=[PW];MultipleActiveResultSets=True" Microsoft.EntityFrameworkCore.SqlServer -o Models -f

参考

EntityFramework Core Database First Approach (ASP.Net Core Part - 7)

17
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
17