MVC Framework - แบบจำลอง
ส่วนประกอบ 'Model' มีหน้าที่จัดการข้อมูลของแอปพลิเคชัน ตอบสนองต่อคำขอจากมุมมองและยังตอบสนองต่อคำสั่งจากคอนโทรลเลอร์เพื่ออัปเดตตัวเอง
คลาสโมเดลสามารถสร้างด้วยตนเองหรือสร้างจากเอนทิตีฐานข้อมูล เราจะได้เห็นตัวอย่างมากมายสำหรับการสร้างโมเดลด้วยตนเองในบทต่อ ๆ ไป ดังนั้นในบทนี้เราจะลองใช้ตัวเลือกอื่น ๆ นั่นคือการสร้างจากฐานข้อมูลเพื่อให้คุณมีประสบการณ์โดยตรงกับทั้งสองวิธี
สร้างเอนทิตีฐานข้อมูล
เชื่อมต่อกับ 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 Empty Application ใหม่ได้ คลิกขวาที่โฟลเดอร์ Models ในโครงการของคุณแล้วเลือก Add → New Item จากนั้นเลือก ADO.NET Entity Data Model
ในวิซาร์ดถัดไปให้เลือกสร้างจากฐานข้อมูลแล้วคลิกถัดไป ตั้งค่าการเชื่อมต่อกับฐานข้อมูล SQL ของคุณ
เลือกฐานข้อมูลของคุณแล้วคลิกทดสอบการเชื่อมต่อ หน้าจอที่คล้ายกับต่อไปนี้จะตามมา คลิกถัดไป
เลือกตารางมุมมองและขั้นตอนและฟังก์ชันที่จัดเก็บไว้ คลิกเสร็จสิ้น คุณจะเห็น Model View ที่สร้างขึ้นดังที่แสดงในภาพหน้าจอต่อไปนี้
การดำเนินการข้างต้นจะสร้างไฟล์ Model สำหรับเอนทิตีฐานข้อมูลทั้งหมดโดยอัตโนมัติ ตัวอย่างเช่นตาราง Student ที่เราสร้างขึ้นจะได้ไฟล์ Model 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; }
}
}