模型負責管理應用程序的數(shù)據(jù)。它響應視圖的請求,同時也響應指令從控制器到自我更新。
模型類可以手動創(chuàng)建或從數(shù)據(jù)庫實體創(chuàng)建產生。 我們將看到很多手動創(chuàng)建模型的例子在接下來的章節(jié)中。因此,在本章中,我們將嘗試另一種選擇,即從數(shù)據(jù)庫中生成,使有自動和手動兩種方法。
連接到SQL Server,并創(chuàng)建一個新的數(shù)據(jù)庫。
現(xiàn)在,運行以下查詢語句來創(chuàng)建新表:
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 )
創(chuàng)建數(shù)據(jù)庫并設置了表之后,你可以繼續(xù)前進,創(chuàng)建一個新空的MVC應用程序。 現(xiàn)在,在您的項目右鍵點擊Models文件夾,并選擇Add->New 項并選擇ADO.NET 實體數(shù)據(jù)模型。
在接下來的向導中,選擇生成數(shù)據(jù)庫,然后單擊下一步。設置連接到SQL數(shù)據(jù)庫。
選擇數(shù)據(jù)庫并單擊測試連接。與此類似,屏幕將會隨之顯示。點擊下一步。
選擇表,視圖和存儲過程和函數(shù),然后單擊完成。將看到模型視圖創(chuàng)建是這樣的:
上述操作將自動創(chuàng)建所有的數(shù)據(jù)庫實體模型文件。示例,我們創(chuàng)建的學生表將產生一個模型文件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; } } }