次の方法で共有


新しいモデルの追加

作成者: Rick Anderson

Note

Visual Studio の最新バージョンを使用した、このチュートリアルの更新バージョンはこちらにあります。 新しいチュートリアル (このチュートリアルよりも多くの改善がされています) では、ASP.NET Core MVC を使用しています。

このチュートリアルでは、ASP.NET Core MVC のコントローラーとビューについて説明します。 Razor Pages は ASP.NET Core での新しい代替手段であり、Web UI の構築をより簡単かつ生産的にする、ページベースのプログラミング モデルです。 MVC のバージョンの前に、Razor ページのチュートリアルを試すことをお勧めします。 この Razor ページのチュートリアルの特徴は次のとおりです。

  • 使いやすい。
  • 多くの機能をカバーしている。
  • 新しいアプリ開発に推奨されるアプローチです。

このセクションでは、データベースのムービーを管理するためのクラスをいくつか追加します。 これらのクラスは、ASP.NET MVC アプリの "モデル" 部分になります。

Entity Framework と呼ばれる .NET Framework のデータアクセス テクノロジを使用して、これらのモデル クラスを定義し、使用します。 Entity Framework (EF とも呼ばれる) は、Code First と呼ばれる開発パラダイムをサポートしています。 Code First を使用すると、簡単なクラスを記述することでモデル オブジェクトを作成できます。 (これらは、POCO (Plain-Old CLR Objects) クラスとも呼ばれます)。そして、クラスからすぐに作成されるデータベースを利用できるため、開発ワークフローがすっきりとした迅速なものになります。 最初にデータベースを作成する必要がある場合でも、このチュートリアルに従って MVC と EF アプリの開発について学習できます。 それから、Database First のアプローチについて説明している、Tom Fizmakens の「ASP.NET スキャフォールディング」のチュートリアルに取り組んでください。

モデル クラスの追加

ソリューション エクスプローラーModels フォルダーを右クリックし、[追加][クラス] の順に選択します。

Screenshot that shows the Solution Explorer window. The Models folder right click menu and the Add submenu are open. Class is selected.

クラス名として「Movie」と入力します。

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

using System;

namespace MvcMovie.Models
{
    public class Movie
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public DateTime ReleaseDate { get; set; }
        public string Genre { get; set; }
        public decimal Price { get; set; }
    }
}

この Movie クラスを使用して、データベース内のムービーを表現します。 Movie オブジェクトの各インスタンスはデータベース テーブル内の行に対応しており、Movie クラスの各プロパティはテーブルの列に対応しています。

注: System.Data.Entity および関連クラスを使用するには、Entity Framework NuGet パッケージをインストールする必要があります。 詳細な手順についてはリンク先を参照してください。

同じファイルで、次の MovieDBContext クラスを追加します。

using System;
using System.Data.Entity;

namespace MvcMovie.Models
{
    public class Movie
    {
        public int ID { get; set; }
        public string Title { get; set; }
        public DateTime ReleaseDate { get; set; }
        public string Genre { get; set; }
        public decimal Price { get; set; }
    }

    public class MovieDBContext : DbContext
    {
        public DbSet<Movie> Movies { get; set; }
    }
}

MovieDBContext クラスは Entity Framework のムービー データベース コンテキストを表しており、データベースに対する Movie クラス インスタンスのフェッチ、保存、更新を処理します。 MovieDBContext は、Entity Framework が提供する DbContext 基底クラスから派生しています。

DbContextDbSet を参照できるようにするためには、ファイル上部に using ステートメントを追加する必要があります。

using System.Data.Entity;

これを行うには、using ステートメントを手動で追加するか、赤い波線の上にマウス ポインターを合わせ、[Show potential fixes] をクリックし、[using System.Data.Entity;] をクリックします

Screenshot that shows the Show potential fixes menu. Using System Data Entity is selected and a cannot be found warning is shown.

注: 未使用の using ステートメントがいくつか削除されます。 Visual Studio では、未使用の依存関係は灰色で表示されます。 灰色の依存関係の上にマウス ポインターを合わせ、[Show potential fixes] をクリックし、[不要な using の削除] をクリックすると、未使用の依存関係を削除できます。

Screenshot that shows the Show potential fixes menu. Remove Unnecessary Usings is selected.

ついに、モデル (MVC の M) を追加しました。 次のセクションでは、データベース接続文字列を操作します。