標籤

2017年5月26日 星期五

ASP.NET MVC 5 - Adding a Model

᳓前言
本篇文章將"Adding a Model"、"Creating a Connection String and Working with SQL Server LocalDB"與"Accessing Your Model's Data from a Controller"的前半部分合併整理而成,後半部分有一些其他說明,包含Strongly Typed Models以及在Visual Studio中開啟資料表等,有需要的再麻煩去看原文。

᳓重點整理
  • 使用被稱為Entity Framework(簡稱為EF)的.NET Framework資料存取技術,進行Model類別的定義及運作。EF支援Code First的開發模式,能夠經由程式碼建立Model物件。
  • 修改Web.config的connection string以連接LocalDB。(不建議產品化的應用程式仍然使用local database,可以輕鬆整合至SQL Server或SQL Azure)
  • 新增MoviesController.cs,以Controller取得Model資料並透過View顯示在瀏覽器中,且Controller可透過Model進行資料庫的新增、修改、刪除。

᳓實作1. 新增Models/Movie.cs
1. 右鍵Models資料夾 -> Add -> Class
2. 輸入Movie -> Add

᳓實作2. 修改Movie.cs的內容
新增必要的屬性於物件中,每個屬性可視為table中的column(ID、Title、ReleaseDate、Genre、Price),此物件的每筆instance可視為table的每筆資料。接著新增MovieDBContext,其衍生自EF所提供的DbContext基礎類別(需using System.Data.Entity),負責處理取得、儲存及更新Movie的instance於資料庫中。

᳓實作3. 修改Web.config
新增<connectionStrings>。(connection string的name一定要與DbContext的類別名稱相同,而資料庫的名稱可以自由命名為*.mdf)

᳓實作4. 新增Controllers/MoviesController.cs
由於這次選擇的是"MVC 5 Controller with views, using Entity Framework",因此新增完畢後會自行於MoviesController.cs中新增CRUD (Create, Read, Update, and Delete) Action程式碼,並於自動建立Views/Movies的資料夾時 一併建立其頁面Create.cshtml、Delete.cshtml、Details.cshtml、Edit.cshtml、Index.cshtml。若是新增Controller時遇到錯誤,請先重新建置專案。
1. 右鍵Controller資料夾 -> Add -> Controller -> MVC 5 Controller with views, using Entity Framework -> Add
2. 選擇Model class(Movie ({WebApplication}.Models))、Data context class(MovieDBContext ({WebApplication}.Models))並輸入Controller name(MoviesController) -> Add

᳓實作5. 透過瀏覽器新增一筆Movie資料
本篇文章並沒有建立LocalDB的說明,因為當第一次進行資料庫存取的同時便會自動建立LocalDB。
1. 在網址列輸入"http://{localhost:port}/Movies",執行Movies的預設動作(Index) -> Create New
2. 輸入欄位資料(日期格式為月/日/年) -> Create
3. 新增完畢會自動跳回Index頁面,可以看到新增了剛剛所輸入的資料,而其他功能也都可以運作

沒有留言:

張貼留言