モデルの追加 (2012)
作成者: Rick Anderson
Note
ASP.NET MVC 5 と Visual Studio 2013 を使用するこのチュートリアルの更新版は、こちらで入手できます。 より安全で、より簡単に操作でき、より多くの機能を備えています。
このセクションでは、データベースのムービーを管理するためのクラスをいくつか追加します。 これらのクラスは、ASP.NET MVC アプリケーションの「モデル」部分です。
Entity Framework と呼ばれる .NET Framework のデータアクセス テクノロジを使用して、これらのモデル クラスを定義し、使用します。 Entity Framework (EF とも呼ばれる) は、Code First と呼ばれる開発パラダイムをサポートしています。 Code First を使用すると、簡単なクラスを記述することでモデル オブジェクトを作成できます。 (これらは、POCO (Plain-Old CLR Objects) クラスとも呼ばれます)。そして、クラスからすぐに作成されるデータベースを利用できるため、開発ワークフローがすっきりとした迅速なものになります。
モデル クラスの追加
ソリューション エクスプローラーで Models フォルダーを右クリックし、[追加]、[クラス] の順に選択します。
クラス名として「Movie」と入力します。
Movie
クラスに次の 5 つのプロパティを追加します。
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
クラスの各プロパティはテーブルの列に対応しています。
同じファイルで、次の MovieDBContext
クラスを追加します。
public class MovieDBContext : DbContext
{
public DbSet<Movie> Movies { get; set; }
}
MovieDBContext
クラスは Entity Framework のムービー データベース コンテキストを表しており、データベースに対する Movie
クラス インスタンスのフェッチ、保存、更新を処理します。 MovieDBContext
は、Entity Framework が提供する DbContext
基底クラスから派生しています。
DbContext
と DbSet
を参照できるようにするためには、ファイル上部に using
ステートメントを追加する必要があります。
using System.Data.Entity;
完成した Movie.cs ファイルを次に示します。 (必要のないいくつかの using ステートメントは削除されています)。
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; }
}
}
接続文字列の作成と SQL Server LocalDB の使用
作成した MovieDBContext
クラスは、データベースへの接続と、Movie
オブジェクトのデータベース レコードへのマッピングのタスクを処理ます。 接続するデータベースを指定する方法について疑問をお持ちかもしれません。 これは、アプリケーションの Web.config ファイルに接続情報を追加することで行います。
アプリケーション ルートにある Web.config ファイルを開きます。 (ビュー フォルダーの Web.config ファイルではありません)。赤で囲まれている Web.config ファイルを開きます。
次の接続文字列を、Web.config ファイルの <connectionStrings>
要素に追加します。
<add name="MovieDBContext"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True"
providerName="System.Data.SqlClient"
/>
次の例は、新しい接続文字列が追加された Web.config ファイルの一部を示しています。
<connectionStrings>
<add name="DefaultConnection"
connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-MvcMovie-2012213181139;Integrated Security=true"
providerName="System.Data.SqlClient"
/>
<add name="MovieDBContext"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\Movies.mdf;Integrated Security=True"
providerName="System.Data.SqlClient"
/>
</connectionStrings>
この小さなコードと XML を記述するだけで、ムービー データを表現してデータベースで保存することができます。
次に、ムービー データを表示し、ユーザーが新しいムービー一覧を作成できるようにするための新しい MoviesController
クラスを構築します。