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; } 
   } 
}