ASP.NET Razor Pages プログラミング

【 ASP.NET Core 】Razor Pages Webアプリの公式チュートリアルをやってみた②(アプリにモデルを追加)

ASP.NET Core Razor Pages

今回はMSDN公式の「ASP.NET Core Razor Pages Webアプリ」のチュートリアルを進めていこうと思います。

チュートリアルを最後まで進めれば、「映画のデータベースを表示して管理できるアプリ」を作成することができるものです。

前回分はこちらです。

今回のパートでは、映画のデータを管理するためのクラスを追加したり、

追加したモデルクラスではEntity Frameworkを使用してデータベースを操作することが可能となります。

公式チュートリアルはこちら

本記事の対象

  • ASP.NET Coreの基本的な使い方を理解したい人
  • Razor Pages Webアプリの開発手順を学びたい人

開発環境

  • OS:Windows10
  • -IDE:Visual Studio 2022
  • -FlameWork:ASP.NET Core6.0

※FlameWorkのバージョンは、チュートリアルページ右上にあるプルダウンと対応するように設定してください。

データ モデルの追加

まず始めに、

Visual Studioを起動して、[新しいプロジェクトの作成]を選択します。

ソリューションエクスプローラーで、RazorPagesMovie プロジェクトを右クリックし、

[追加]>[新しいフォルダー] の順に選択します。


Modelsフォルダーを右クリックし、[追加]>[クラス] の順に選択、クラスにMovieと名前を付けます。


Movieクラスに次のプロパティを追加します。

using System.ComponentModel.DataAnnotations;

namespace RazorPagesMovie.Models
{
    public class Movie
    {
        public int ID { get; set; }
        public string Title { get; set; } = string.Empty;

        [DataType(DataType.Date)]
        public DateTime ReleaseDate { get; set; }
        public string Genre { get; set; } = string.Empty;
        public decimal Price { get; set; }
    }
}


Movieクラスには以下の要素が含まれています。

  • IDフィールド:データベースで主キー用に必要です。
  • ReleaseDate:プロパティのデータの型を指定する [DataType] 属性

ムービーモデルのスキャフォールディング


ここではMovieモデルをスキャフォールドします。

スキャフォールドとは、アプリケーションの雛形を自動生成して簡単に作ることができる機能のことを指します。

スキャフォールド機能により、ムービー モデルの作成、読み取り、更新、削除の (CRUD) 操作用のページを一括で生成することが可能です。

最初に、

スキャフォールドツールに必要な NuGet パッケージMicrosoft.EntityFrameworkCore.Design」を追加します。

[ツール] メニューから、[NuGet パッケージ マネージャー]>[ソリューションの NuGet パッケージの管理] を選択します。


[参照] タブから「Microsoft.EntityFrameworkCore.Design」と入力して一覧から選択し、インストールを押下します。

[ライセンスへの同意] ダイアログで [同意する] を選択します。


Pages/Movies フォルダーを作成します。

Pages フォルダーを右クリックし、[追加]>[新しいフォルダー] の順に選択し、Moviesというフォルダ名を設定します。

Pages/Movies フォルダーを右クリックし、[追加]>[新規スキャフォールディング アイテム] の順に選択します。


[新しいスキャフォールディングの追加] ダイアログで、[Entity Framework を使用する Razor Pages (CRUD)]>[追加] の順に選択します。


[Entity Framework を使用する Razorページ(CRUD) の追加]ダイアログにて

[モデル クラス] ドロップ ダウンで [Movie (RazorPagesMovie.Models)] を選択し、追加ボタンを押下します。


[データ コンテキストの追加] ダイアログで、クラス名「RazorPagesMovie.Data.RazorPagesMovieContext」を入力し、追加ボタンを押下します。


以上で次のファイルが自動的に作成されます。

  • Pages/Movies: Create.cshtml, Delete.cshtml, Details.cshtml, Edit.cshtml, Index.cshtml
  • Data/RazorPagesMovieContext.cs

EF の移行機能を使用して初期データベース スキーマを作成する

Entity Framework Core の移行機能を使用して、初期データベーススキーマを作成します。

パッケージ マネージャー コンソール (PMC) ウィンドウを使用して、次の作業を行います。

[ツール] メニューで、[NuGet パッケージ マネージャー]>[パッケージ マネージャー コンソール] の順に選択します。

PMC で、次のコマンドを入力します。

このコマンドを使用することで Entity Framework Core ツールをインストールし、migrations コマンドを実行して、
初期データベース スキーマを作成するコードを生成できます。

Add-Migration InitialCreate
Update-Database


migrations コマンドによってDbContext で指定されたモデルに基づいた最初のデータベース スキーマを作成するコードが生成されます。

アプリのテスト

アプリを実行し、ブラウザーで URL に /Movies を追加します。

[Create New] (新規作成) リンクをテストしてみます。

デバッグ実行した後、以下のようにMoviesページが正常に表示されていれば今回のパートは終了です!

おすすめ記事はコチラ

スマレジ テックファーム 1

スマレジ テックファーム で Webエンジニアとして勤めている tomoです。 今回は株式会社スマレジや私が所属している 「 スマレジ テックファーム 」についてPRしていきたいと思います。 スマレジ ...

2

FromBody 属性を使用して、 ASP.NET Core(.NET 6)のWebAPIでBodyパラメータのJSONを受け取る方法を解説します。 FromBody 属性 POSTやGETで呼び出さ ...

PC picture 3

ASP.NET Core(.NET 6)でCookie認証のタイムアウトを設定する方法を解説します。 Cookieの有効期限について Cookieには通常はタイムアウト(有効期限)を設定します。 基本 ...

4

ASP.NET Core(.NET 6)でクロスオリジンリクエスト ( CORS )を設定する方法を解説します。 簡単に クロスオリジンリクエスト ( CORS )とは何かについても少し解説したいと思 ...

-ASP.NET, Razor Pages, プログラミング
-, ,