17
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?