【ASP.NET MVC入門その2】ASP.NET MVCでModelクラスの実装
「ASP.NET MVC」を使用してWebアプリケーションを作成します。
ASP.NET MVCでWebアプリケーションを作成する際、データのやりとりを するのに使用するのが、MVCの「M」の部分となるModelです。
- システム
エンジニア - ASP.NET MVCを使ってみたいです。Modelの役割や作り方を教えてください。
- プロジェクト
マネージャー - ASP.NET MVCのModelはたくさんの機能があり、データベース関連の処理を実装するのに大いに役立ちます。一緒に確認しましょう。
ASP.NET MVCのModelとは
ASP.NET MVCのModelとは、データのやりとりをするためのクラスです。
例えば、Webアプリケーションで何かデータを検索したい時、アプリの画面上で検索ボタンがクリックされた場合を考えます。その際、Modelはどういう内容で検索するのかという要求を受け取り、データベースからデータを検索します。
検索した結果を箱に詰め、データを返却します。
返却されたデータが、実際にアプリの画面上に検索結果として表示されるという流れです。
ASP.NET MVCは、MVCのそれぞれで役割が異なっており、そのことで実装や実装後の修正がしやすくなるメリットがあります。
Modelの役割はデータベースにアクセスすることです。それ以外の画面表示のロジックや、データの内容によって分岐、繰り返しをするような処理はModelの対象外となります。
よって、Modelに実装する内容を明確にして、開発を進めることが重要です。
ASP.NET MVCのModelクラスの実装方法
それでは実際にModelを実装していきます。
使用する環境はVisual Studio 2017です。
まず行うことは、店舗の情報を管理するModelクラス(Shopクラス)の作成です。
- Visual Studio 2017を使用してASP.NET MVCのプロジェクトを作成し、認証を「個別のユーザーアカウント」で作成します。
- 作成が完了したら、右側に表示されている「ソリューションエクスプローラー」で、「Models」のフォルダを右クリックし、追加→クラスを選択します。
以下の画面が表示されるので、名前を入力して追加ボタンをクリックします。
- 作成したShop.csにModelの定義を記載してください。
これが実際のデータベースのテーブル定義です。
以下にコードを記載します。1234567891011121314using System.ComponentModel.DataAnnotations;using System.ComponentModel.DataAnnotations.Schema;namespace WebApplication1.Models{public class Shop{[Key][DatabaseGenerated(DatabaseGeneratedOption.Identity)]public int Id { get; set; }public string Name { get; set; }}}今回は、「id」と「name」というカラムを作成します。
[Key]というのがプライマリーキーの定義です。
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]というのをつけると、プライマリーキーが自動採番されます。 - 追加したテーブルの定義を「IdentityModels.cs」に追加します。
テーブルの変数名は複数形で記載するのが一般的です。
1public DbSet<Shop> Shops { get; set; }追加後は以下のようになります。
- Visual Studio 2017の表示メニューから、その他のウィンドウ→パッケージマネージャーコンソールを選択します。
表示されたコンソールで、以下のコマンドを実行してください。
1Enable-MigrationsShopテーブルのマイグレーションを追加します。
マイグレーションとは、Modelから実際のテーブルを作る機能です。
以下のコマンドを実行してください。1Add-Migration Shopテーブルの追加を実際にデータベースに反映します。
以下のコマンドを実行してください。1Update-Database以上で実際にデータベースが作成されます。
- Visual Studio 2017の表示メニューから、SQL Serverオブジェクトエクスプローラーを選択します。
このエクスプローラーでデータベースを確認することが可能です。
以下のように、Shopsテーブルが作成されていることが確認できます。
以上で、Modelクラスを実装して、Modelクラスからデータベースを作成することができました。
Modelクラスを実装すれば、テーブルを作成するためのSQL文を記載する必要がないので、簡単にテーブルが作成できます。
- システム
エンジニア - Modelクラスを実装することで、そこから実際のデータベースにテーブルを作成できるのですね。
- プロジェクト
マネージャー - そうですね。テーブルを作成するところまでスムーズに進めることができます。Modelクラスの実装にぜひチャレンジしてみてください!
Modelクラスを実装するとテーブルの作成までがスムーズ
今回は、Modelクラスを作成して、実際のデータベースにテーブルを作成するところまで説明しました。
Modelクラスは、テーブルと1対1で各カラム用の変数を定義していくので、Modelクラスの実装方法を理解して、使っていきましょう。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
ASP.NET新着案件New Job
-
Web受注システム運用保守/VB.NET/東京都港区/【WEB面談可】
月給50万~60万円東京都港区(品川駅) -
Web受注システム開発のテスター/VB.NET/東京都港区/【WEB面談可】
月給25万~35万円東京都港区(品川駅) -
営業フロントシステム運用保守/ASP.NET/東京都江東区/【WEB面談可】
月給50万~60万円東京都江東区(木場駅) -
営業フロントシステム開発のテスター/ASP.NET/東京都江東区/【WEB面談可】
月給25万~35万円東京都江東区(木場駅) -
営業フロントシステム開発/ASP.NET/東京都江東区/【WEB面談可】
月給35万~41万円東京都江東区(木場駅) -
Web受注システム開発/VB.NET/東京都港区/【WEB面談可】
月給45万~60万円東京都港区(品川駅)