2020年7月6日 新型肺炎ウィルスの影響を受けて、お問い合わせ対応時間が10時~18時となっております。ご迷惑をおかけしますが宜しくお願い申し上げます。

ASP.NET Core コードファーストなscaffolding

弊社技術顧問の増田智明の著書紹介をかねた.Net Core MVCのチップスです。

.NET Coreを利用するとLinux、Windowsを問わずに動作するアプリケーションが作成出来ます。2章 “スキャフォールディングの利用”の一部を実際に行ってみます。

今回はコードで先にテーブル構造を定義して、スキャフォールディングでテーブルを設定していきます。前回とは手順が異なります。

前回

 

 

プロジェクトを作り直して始める。

.Net Core MVC スキャフォールディング scaffold

appsettings.jsonの接続が私の環境と合ってないようで。前回そういえばこの部分に関して設定を触っていなかったですね。

 

 

サーバー名を確認します。

 

 

.Net Core MVC スキャフォールディング scaffold

appsettings.jsonを書き換えます。

 

通りました(ㆁᴗㆁ✿)

 

 

.Net Core MVC スキャフォールディング scaffold

テーブルの状態が現状こうなっていて、コードでモデルを修正して、スキャフォールディングでDBを変更します。

 

コードファーストなスキャフォールディング

Personクラスの設定

.Net Core MVC スキャフォールディング scaffold

 

Prefectureクラスの設定

.Net Core MVC スキャフォールディング scaffold

Modelsにクラスを作っておきます。

 

 

PowerShellでマイグレーションを実行します。

 

 

ASP.Net Core MVC スキャフォールディング scaffold

Personテーブルの修正を確認。

 

 

 

コントローラの上書き

ASP.Net Core MVC スキャフォールディング scaffold

同名のコントローラを追加することで上書きを行います。

 

 

 

【Entity Frameworkを使用したビューがあるMVCコントローラ】を選択して【追加】を行います。

 

 

 

 

ASP.Net Core MVC スキャフォールディング scaffold

同名に設定します。

 

 

 

ASP.Net Core MVC スキャフォールディング scaffold

【はい】をクリックして上書きを行います。

 

 

 

ASP.Net Core MVC スキャフォールディング scaffold

【はい】をクリックします。

 

 

 

ASP.Net Core MVC スキャフォールディング scaffold

コントローラもビューも上書きされました。

 

 

 

IIS Expressを起動してビルドする

 

Personテーブルのテーブル構造の変更、Prefectureテーブルが作成されていることがわかります。

 

 

 

Prefectureテーブルにデータを入れてみる

IDENTITY_INSERT が OFF に設定されているときは、テーブル ‘Prefecture’ の ID 列に明示的な値を挿入できません。

何も考えずにINSERTをかけたらエラーが出ましたね~。

警告そのままにSET IDENTITY_INSERTをONにして、INSERTクエリが終わったらOFFで設定を戻しますよ!

 

上手くクエリが流れました。

 

 

 

レコードの確認

ASP.Net Core MVC スキャフォールディング scaffold

問題なさそうですね。

  • テーブルを先に作っておいて、スキャフォールディングでモデルを自動生成する。
  • モデルでテーブルのクラスを定義して、スキャフォールディングでテーブルを自動生成する

どちらもできる便利な機能であることがわかりました。

 

 

続きは書籍で

WEB API, WPF, Xamarinなどクライアントを選ばないアプリケーション作成のテクニックがぎゅぎゅっと紹介されています。必読!

 

お疲れ様です。

最新情報をチェックしよう!
>システム構築・保守に特化した会社です。

システム構築・保守に特化した会社です。

システムの構築・保守運用「システムガーディアン」 社内システム担当が欲しいが、専属で雇うほどの仕事量はない。 必要な時に必要なだけ頼りたいというお悩みを持つ企業様へ専門知識を持って対応を行っております。 サーバから各種システムまで自社・他社で構築されたシステムに対してサポートを行っております。

CTR IMG