【メモ】ASP.NET Core ベースのEntity Framework 学習

ASP.NET Core ベースのEntity Framework を学習するメモです。

参考

ASP.NET MVCプログラミング入門

この記事は「ASP.NET MVCプログラミング入門」をほぼそのまま行っています。

Visual Studio 2017 RC のインストール

Visual Studio 2017をインストール。(2016/11現在はRC版です。)
Visual Studio 2015 では.NET Coreのテンプレートが標準でないので、学習用としてVisual Studio 2017を新規インストールします。Visual Studio 2015またはそれ以前のVSが既存マシンにある環境では、新旧が共存すると依存関係で問題が起き学習が思うように進まない可能性があります。学習用の単一機能のマシンか仮想マシンでコンパイルするのがベストです。

Visual Studio 新規ソリューション生成

MENU -> ファイル -> 新規作成 -> プロジェクトからC# -> Web -> ASP.NET Core のテンプレートを選びます。
このとき、認証の変更ボタンで個別ユーザアカウントを設定するのを忘れずに。
とりあえず、F5(実行)。テンプレートのWebページが表示されます。

SQL Server に新規データベースを作成しPersonクラスを生成

SQL ServerはVisual Studioの入ったクライアントマシンと同居すると重くなるので、できればローカルでなく、学習用マシンとは別のSQLサーバがおすすめ。もちろんAzureのSQLでも可。
Personテーブル追加のクエリを実行。

Modelクラスの生成その前にライブラリの依存関係を解決

パッケージマネージャコンソールで次を実行します。
VS2017RCテンプレートではこれを事前行わないとエラーが発生します。

Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.Design
Install-Package Microsoft.Extensions.Logging

Modelクラスの生成

PowerShellでVisual Studioの.csprojのあるディレクトリまで移動後、次のコマンドを実行します。

dotnet ef dbcontext scaffold "<接続文字列>" Microsoft.EntityFrameworkCore.SqlServer -o Models

接続文字列はVisual Studioのデータ接続でSQL Serverに接続、プロパティ欄で確認できます。

ソースの修正

Startup.csを修正。これは書籍通り。
スキャフォールディングの実行
ソリューションエクスプローラーのControllersのコンテキストメニューを開き 追加 -> コントローラ を選びます。

実行