MVCフレームワーク-モデル
コンポーネント「モデル」は、アプリケーションのデータを管理する役割を果たします。ビューからの要求に応答し、コントローラーからの指示にも応答して自身を更新します。
モデルクラスは、手動で作成することも、データベースエンティティから生成することもできます。次の章では、モデルを手動で作成するための多くの例を紹介します。したがって、この章では、他のオプション、つまりデータベースから生成して、両方の方法を実際に体験できるようにします。
データベースエンティティを作成する
SQL Serverに接続し、新しいデータベースを作成します。
次に、次のクエリを実行して新しいテーブルを作成します。
CREATE TABLE [dbo].[Student](
[StudentID] INT IDENTITY (1,1) NOT NULL,
[LastName] NVARCHAR (50) NULL,
[FirstName] NVARCHAR (50) NULL,
[EnrollmentDate] DATETIME NULL,
PRIMARY KEY CLUSTERED ([StudentID] ASC)
)
CREATE TABLE [dbo].[Course](
[CourseID] INT IDENTITY (1,1) NOT NULL,
[Title] NVARCHAR (50) NULL,
[Credits] INT NULL,
PRIMARY KEY CLUSTERED ([CourseID] ASC)
)
CREATE TABLE [dbo].[Enrollment](
[EnrollmentID] INT IDENTITY (1,1) NOT NULL,
[Grade] DECIMAL(3,2) NULL,
[CourseID] INT NOT NULL,
[StudentID] INT NOT NULL,
PRIMARY KEY CLUSTERED ([EnrollmentID] ASC),
CONSTRAINT [FK_dbo.Enrollment_dbo.Course_CourseID] FOREIGN KEY ([CourseID])
REFERENCES [dbo].[Course]([CourseID]) ON DELETE CASCADE,
CONSTRAINT [FK_dbo.Enrollment_dbo.Student_StudentID] FOREIGN KEY ([StudentID])
REFERENCES [dbo].[Student]([StudentID]) ON DELETE CASCADE
)
データベースエンティティを使用してモデルを生成する
データベースを作成してテーブルを設定したら、先に進んで新しいMVC空のアプリケーションを作成できます。プロジェクトのModelsフォルダーを右クリックし、「追加」→「新規アイテム」を選択します。次に、[ADO.NETエンティティデータモデル]を選択します。
次のウィザードで、[データベースから生成]を選択し、[次へ]をクリックします。SQLデータベースへの接続を設定します。
データベースを選択し、[接続のテスト]をクリックします。次のような画面が表示されます。[次へ]をクリックします。
テーブル、ビュー、およびストアドプロシージャと関数を選択します。[完了]をクリックします。次のスクリーンショットに示すように作成されたモデルビューが表示されます。
上記の操作により、すべてのデータベースエンティティのモデルファイルが自動的に作成されます。たとえば、作成したStudentテーブルは、次のコードを持つモデルファイルStudent.csになります。
namespace MvcModelExample.Models {
using System;
using System.Collections.Generic;
public partial class Student {
public Student() {
this.Enrollments = new HashSet();
}
public int StudentID { get; set; }
public string LastName { get; set; }
public string FirstName { get; set; }
public Nullable EnrollmentDate { get; set; }
public virtual ICollection Enrollments { get; set; }
}
}