はじめに
前回の記事では、レイアウトの編集方法について学習しました。
今回は、モデルの追加方法について学習していきます。
モデルクラスを作成しよう
ソリューションエクスプローラーで Models フォルダーを右クリックして、[追加]-[クラス]を選択し、ファイル名を「AddressItem.cs」にします。
コードは、以下のように編集します。
using System.ComponentModel.DataAnnotations; namespace AddressBookApp.Models { public class AddressItem { // Id(主キー用) public int Id { get; set; } // 郵便番号 public string? ZipCode { get; set; } // 州(県) public string? State { get; set; } // 番地 public string? StreetAdress { get; set; } // 名前 public string? FirstName { get; set; } // 苗字 public string? LastName { get; set; } // 電話番号 public string? PhoneNumber { get; set; } // メールアドレス public string? Email { get; set; } } }
Id は主キー用。string の後の疑問符は、そのプロパティが Null 許容であることを示し、Null値であってもエラーが発生しないようにします。
スキャフォールディングツールを使用して CRUD ページを作成しよう
次にスキャフォールディングツールを使用して CRUDページを作成します。
CRUDとは?
CRUDとは、Create(作成)、Read(読み込み)、Update(更新)、Delete(削除)の頭文字を取ったもので、データベース操作における基本的な4つの機能を指します。
- Create(作成): 新しいデータをデータベースに追加する操作です。例えば、住所情報を登録する際に使用されます。
- Read(読み込み): データベースからデータを取り出す操作です。住所一覧を表示したり、特定の住所情報を取得したりする際に使用されます。
- Update(更新): 既存のデータを変更する操作です。住所情報を修正する際に使用されます。
- Delete(削除): データベースからデータを削除する操作です。不要になった住所情報を削除する際に使用されます。
スキャフォールディングとは?
スキャフォールディングとは、ソフトウェア開発において、反復的な作業を自動化し、開発初期段階の生産性を高めるための技術です。特に、Webアプリケーション開発において、データベースとの連携や、CRUD操作(Create, Read, Update, Delete)に必要なコードを自動生成することで、開発者がより高レベルなロジックに集中できるようにします。
- モデルの定義: データベースのテーブルに対応するモデルクラスを定義します。
- スキャフォールディングの実行: 開発環境のツールやコマンドを使用して、モデルクラスに基づいてコントローラー、ビュー、マイグレーションファイルなどを自動生成します。
- カスタマイズ: 生成されたコードを必要に応じてカスタマイズします。
前置きが長くなりましたが、スキャフォールディングで CRUD ページを作成してみましょう。
ソリューション エクスプローラーで、Controllers フォルダーを右クリックし、[追加] > [新規スキャフォールディング アイテム] の順に選択します。
続いて、[新しいスキャフォールディング アイテムの追加] ダイアログの左側のペインで、[インストール済み] > [共通] > [MVC] を選びます。
[Entity Framework を使用したビューがある MVC コントローラーを追加する] ダイアログが表示されます。
- [モデル クラス] ドロップ ダウンで、 [AddressItem (AddressBookApp.Models)] を選択します。
- [データ コンテキスト クラス] 行で、[+] (プラス) 記号を選択します。
[データ コンテキストの追加] ダイアログで、クラス名 AddressBookApp.Data.AddressBookAppContext が生成されます。
[追加] を選択します。 - [データベース プロバイダー] ドロップダウンで、[SQLite] を選びます。
ビュー と コントローラー名: 既定値のままにします。
[追加] を選択します。
注意:筆者はSQLiteを選択しましたが、任意のデータベースを選択して構いません。
最後に [追加]ボタンをクリックします。
上記の操作で、以下ファイルが作成されます
- Controllers フォルダー配下に、AddressItemsController.cs
- Vies/AddressItems フォルダー配下に
Create.cshtml
Delete.cshtml
Details.cshtml
Edit.cshtml
Index.cshtml - Dataフォルダー配下に、AddressBookAppContext.cs
データベースの作成
この段階では、まだデータベースは作成されていません。
Visual Studio の[ツール] メニューで、[NuGet パッケージ マネージャー] > [パッケージ マネージャー コンソール] を選択して、次のコマンドを実行します。
Add-Migration InitialCreate Update-Database
Add-Migration InitialCreate と Update-Database コマンドの解説
コマンドの目的
各コマンドの役割
アプリの動作確認
それではアプリの動作確認をしてみましょう。
https://localhost:{ポート番号}/AddressItems にアクセスすると、以下のように一覧を表示するページが表示されます。
「Creat New」のリンクをクリックすると、新規住所の追加ページが表示されるので、任意のデータを入力して[Create]ボタンをクリックしてみましょう。
データ追加後は、以下のように一覧表示画面に遷移します。
データの横には Edit, Details, Delete のリンクがあり、これらのリンク先も機能するように作成されています。
まとめ
記事が長くなってしまいましたが、実際に操作したのは、モデルの作成と、スキャフォールディングの実行とコマンドの実行だけです。
たったこれだけで、データベースの作成と、実際に機能するアプリを作成することができます。
ぜひ、手を動かして体感をすることをお勧めします。
コメント