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