ASP.NET Core MVC コードファースト 単一テーブル サンプル

#内容
ASP.NET Core MVC Entity Framework コードファースト(Code First)を利用して、Companyクラスからデータベースを構築し、スキャフォールディング(Scaffolding)機能を実装する。

#環境
* Windows 10
* Visual Studio 2017
* Microsoft Edge
* SQL Serve 2017
* Microsoft SQL Server Management Studio 17
* ASP.NET Core2.2
* Windows PowerShell

#手順
1.Visual Studio 2017起動 → 新しいプロジェクトの作成 → ASP.NET Core Webアプリケーション を選択
　プロジェクト名、保存場所を指定して OK ボタンを押す。
![ASP.NET Core MVC コードファースト サンプル_01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/94f601ca-58b6-8e09-3ce4-bd4dc42fa5ff.png)

2.Web アプリケーション（モデル ビュー コントローラ ）を選択　→　認証の変更ボタンを押す
![ASP.NET Core MVC コードファースト サンプル_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/c7e957df-9dfa-23f3-8649-298bbaa79042.png)

3.個別のユーザーアカウントを選択して OK ボタンを押す
![ASP.NET Core MVC コードファースト サンプル_03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/c430e5c7-0a0c-dce9-32fb-6f1b824caecd.png)

4.認証 が 個別のユーザーアカウントに変更されているのを確認 → OK ボタンを押す
![ASP.NET Core MVC コードファースト サンプル_04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/87319c2d-701b-085b-b071-3a1ef2dee02a.png)

5.プロジェクトが作成される
![ASP.NET Core MVC コードファースト サンプル_05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/7bc2aa13-ca77-7620-b1b1-4f34612c0dce.png)

6.F5 ボタン（デバッグ開始）を押して、動作を確認する → Microsoft Edge が立ち上がって、Home画面が表示される
![ASP.NET Core MVC コードファースト サンプル_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/e62379cc-4ea5-2de8-b102-e569df496480.png)

7.Models フォルダ内にCompanyクラスを作成する
![ASP.NET Core MVC コードファースト サンプル_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/dd02f3eb-fe81-f9a9-02da-2887ddd5977b.png)

```csharp
namespace WebApplication1.Models
{
    public class Company
    {
        public int Id { get; set; }
        public string Name { get; set; }
    }
}
```

8.新規スキャフォールディングアイテムを追加する
　Controllersフォルダ右クリック　→　追加　→　新規スキャフォールディングアイテム
![ASP.NET Core MVC コードファースト サンプル_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/b4dfee1f-6011-77c3-8fe0-eb0ce55a8309.png)
→　Entity Framework を使用したビューがある MVCコントローラ を選択して 追加 ボタンを押す![ASP.NET Core MVC コードファースト サンプル_09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/bb094129-fc68-299c-d731-fbb17960fee2.png)
→　モデルクラス(Company)とデータコンテキストクラス を設定して　追加ボタンを押す
![ASP.NET Core MVC コードファースト サンプル_10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/804b01c8-71b9-6a6f-785b-0acce5adeb88.png)

9.Controllersフォルダ内に、CompaniesController.cs が作成される
![ASP.NET Core MVC コードファースト サンプル_11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/33ba3464-9984-7fec-4e7c-fabde808c854.png)

10.Views フォルダ内に Companies フォルダが作成されて、そのなかに Create.cshtml, Delete.cshtml, Details.cshtml, Edit.cshtml, Index.cshtml が作成される
![ASP.NET Core MVC コードファースト サンプル_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/7cc4d22c-26d8-b340-3b57-592e6fe7424b.png)

11.データベース接続文字の修正
  appsettings.json を開いて、接続文字を修正する
Server=(localdb)\\mssqllocaldb を Server=localhost\\SQLEXPRESS に修正

```json
{
  "ConnectionStrings": {
    "DefaultConnection": "Server=localhost\\SQLEXPRESS;Database=aspnet-WebApplication1-B61014F3-4288-42CC-82EA-CAC2D4F327EF;Trusted_Connection=True;MultipleActiveResultSets=true"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*"
}
```

12.PowerShell を起動　→　プロジェクトのディレクトリに移動　→　dotnet ef コマンドを実行

```shell
dotnet ef migrations add Initial
dotnet ef database update 
```

![ASP.NET Core MVC コードファースト サンプル_13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/7ed06f33-5ccb-b477-24ea-bd34e95c33d9.png)

13.Dataフォルダ、Migrationsフォルダ内に 20191001055138_Initial.cs が作成されている
![ASP.NET Core MVC コードファースト サンプル_14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/454fd99b-5d97-d94b-3ab4-290a41b42b13.png)

14.データベースを確認する
　SQL Server Management Studio からデータベースを確認する
　接続文字と同じ名前のデータベースが作成されている
![ASP.NET Core MVC コードファースト サンプル_15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/8a3477a1-2b90-0688-48c6-a558df791b23.png)


15.テーブルを確認する
　→　IdとNameを持つ、テーブルが作成されている
![ASP.NET Core MVC コードファースト サンプル_16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/adb3c90b-625c-7b6a-ba47-3d6133423f48.png)

16.F5 ボタン（デバッグ開始）を押して、動作を確認する
  アドレスの最後を Companies にする　→　　Index 画面が表示される
![ASP.NET Core MVC コードファースト サンプル_17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/b5f95c4d-0349-6d71-214d-46b03d777735.png)
![ASP.NET Core MVC コードファースト サンプル_18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/399556ce-6e93-4361-63b9-19f0c6d6e89a.png)

17.Create New を押すと新規登録できる
![ASP.NET Core MVC コードファースト サンプル_19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/16cefa63-b57d-f2b6-71ad-6bd466b472de.png)

18.登録されたデータが Index 画面に表示される
　Edit 選択で編集、Details で詳細表示、 Delete で削除できる
![ASP.NET Core MVC コードファースト サンプル_20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/bda0fbf3-aed3-c6bd-95d6-b1fea2b9ecf7.png)
![ASP.NET Core MVC コードファースト サンプル_21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/727bd59d-7d30-284a-7fc8-7142e03e24df.png)
![ASP.NET Core MVC コードファースト サンプル_22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/ea09e6f9-7a3c-eca7-39ed-d0b00e89fd1c.png)
![ASP.NET Core MVC コードファースト サンプル_23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/384860/dbce1866-d7d5-1b94-c345-713b2a4329a9.png)

19.完成