ASP.NET MVC 4 Entity Framework Scaffold 和移轉
由 Web 擷取小組
如果您熟悉 ASP.NET MVC 4 控制器方法,或已完成「協助程式、表單和驗證」Hands-On實驗室,您應該注意建立、更新、列出和移除任何資料實體的大部分邏輯都會在整個應用程式中重複。 請勿提及,如果您的模型有數個要操作的類別,您可能會花相當多的時間撰寫每個實體作業的 POST 和 GET 動作方法,以及每個檢視。
在此實驗室中,您將瞭解如何使用 ASP.NET MVC 4 Scaffolding 來自動產生應用程式的 CRUD 基準 (建立、讀取、更新和刪除) 。 從簡單的模型類別開始,而且不需要撰寫單行程式碼,您將會建立一個控制器,其中包含所有 CRUD 作業,以及所有必要的檢視。 建置和執行簡單解決方案之後,您將會產生應用程式資料庫,以及用於資料操作的 MVC 邏輯和檢視。
此外,您將瞭解如何使用 Entity Framework 移轉在整個應用程式中執行模型更新。 Entity Framework 移轉可讓您在模型變更之後,使用簡單步驟來修改資料庫。 請記住,您將能夠更有效率地建置和維護 Web 應用程式,並利用 ASP.NET MVC 4 的最新功能。
注意
所有範例程式碼和程式碼片段都包含在 Web Training Kit 中,可從 Microsoft-Web/WebCampTrainingKit 版本取得。 此實驗室特定的專案可在 ASP.NET MVC 4 Entity Framework Scaffolding 和 Migrations取得。
目標
在此Hands-On實驗室中,您將瞭解如何:
- 針對控制器中的 CRUD 作業使用 ASP.NET Scaffolding。
- 使用 Entity Framework 移轉變更資料庫模型。
必要條件
您必須有下列專案才能完成此實驗室:
- Microsoft Visual Studio Express 2012 for Web或更上層 (請參閱附錄 A,以取得如何安裝) 的指示。
安裝程式
安裝程式碼片段
為了方便起見,您將在此實驗室中管理的大部分程式碼都可以作為 Visual Studio 程式碼片段使用。 若要安裝程式碼片段,請執行 .\Source\Setup\CodeSnippets.vsi 檔案。
如果您不熟悉Visual Studio Code程式碼片段,而且想要瞭解如何使用這些程式碼片段,您可以參閱本檔中的附錄「附錄 B:使用程式碼片段」。
Exercises
下列練習構成此Hands-On實驗室:
注意
此練習隨附 End 資料夾, 其中包含完成練習之後應該取得的結果解決方案。 如果您需要完成練習的其他協助,您可以使用此解決方案作為指南。
完成此實驗室的估計時間: 30 分鐘
練習 1:搭配 Entity Framework 移轉使用 ASP.NET MVC 4 Scaffolding
ASP.NET MVC Scaffolding 提供快速的方式,以標準化的方式產生 CRUD 作業,建立必要的邏輯,讓您的應用程式與資料庫層互動。
在此練習中,您將瞭解如何先使用 ASP.NET MVC 4 Scaffolding 搭配程式碼來建立 CRUD 方法。 然後,您將瞭解如何使用 Entity Framework 移轉來更新套用資料庫中變更的模型。
工作 1- 使用 Scaffolding 建立新的 ASP.NET MVC 4 專案
如果尚未開啟,請啟動 Visual Studio 2012。
選取 檔案 |新增專案。 在 [新增專案] 對話方塊的 [Visual C#] 下 |Web 區段,選取 [ASP.NET MVC 4 Web 應用程式]。 將專案命名為 MVC4andEFMigrations ,並將位置設定為此實驗室的 Source\Ex1-UsingMVC4ScaffoldingEFMigrations 資料夾。 將 [方案名稱 ] 設定為 [開始 ],並確定已核取 解決方案的 [建立目錄 ]。 按一下 [確定]。
新增 ASP.NET MVC 4 專案對話方塊
在 [ 新增 ASP.NET MVC 4 專案 ] 對話方塊中,選取 [網際網路應用程式 ] 範本,並確定 Razor 是選取的 [檢視引擎]。 按一下 [確定] 以建立專案。
新的 ASP.NET MVC 4 網際網路應用程式
在方案總管中,以滑鼠右鍵按一下[模型],然後選取 [新增] |建立簡單類別人員 (POCO) 。 將它命名為 Person ,然後按一下 [ 確定]。
開啟 Person 類別並插入下列屬性。
(程式碼片段 - ASP.NET MVC 4 和 Entity Framework 移轉 - Ex1 人員屬性)
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace MVC4EF.Models { public class Person { public int PersonID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } } }
按一下 [建置] |建置方案 以儲存變更並建置專案。
建置應用程式
在方案總管中,以滑鼠右鍵按一下 controllers 資料夾,然後選取 [新增] |控制器。
將控制器命名為 PersonController ,並使用下列值完成 Scaffolding 選項 。
在 [ 範本 ] 下拉式清單中, 使用 Entity Framework 選項選取具有讀取/寫入動作和檢視的 MVC 控制器 。
在 [ 模型類別 ] 下拉式清單中,選取 Person 類別。
在 [資料內容類別別]清單中,選取 [< 新增資料內容... >]。 選擇任何名稱,然後按一下 [ 確定]。
在 [ 檢視 ] 下拉式清單中,確定已選取 Razor 。
搭配
使用 Scaffolding 新增 Person 控制器
按一下 [新增 ] 以建立具有 Scaffolding 之 Person 的新控制器。 您現在已產生控制器動作以及檢視。
,
使用 Scaffolding 建立 Person 控制器之後
開啟 PersonController 類別。 請注意,系統會自動產生完整的 CRUD 動作方法。
在人員控制站內
工作 2- 執行應用程式
此時尚未建立資料庫。 在這項工作中,您將第一次執行應用程式,並測試 CRUD 作業。 系統會使用 Code First 即時建立資料庫。
按 F5 鍵執行應用程式。
在瀏覽器中,將 /Person 新增至 URL 以開啟 Person 頁面。
應用程式:初次執行
您現在將會探索 Person 頁面,並測試 CRUD 作業。
按一下 [ 新建 ] 以新增人員。 輸入名字和姓氏,然後按一下 [ 建立]。
新增人員
在人員的清單中,您可以刪除、編輯或新增專案。
人員清單
按一下 [詳細資料 ] 以開啟人員的詳細資料。
人員的詳細資料
關閉瀏覽器並返回 Visual Studio。 請注意,您已在整個應用程式中為人員實體建立整個 CRUD,從模型到檢視,而不需要撰寫單行程式碼!
工作 3- 使用 Entity Framework 移轉更新資料庫
在這項工作中,您將使用 Entity Framework 移轉來更新資料庫。 您將探索使用 Entity Framework 移轉功能來變更模型並反映資料庫中的變更有多容易。
開啟套件管理員主控台。 選取 [工具]>[NuGet 套件管理員]>[套件管理員主控台]。
在 [套件管理器主控台] 中,輸入下列命令:
PMC
Enable-Migrations -ContextTypeName [ContextClassName]
轉
啟用移轉
Enable-Migration命令會建立 Migrations 資料夾,其中包含初始化資料庫的腳本。
Migrations 資料夾
在 Migrations 資料夾中開啟 Configuration.cs 檔案。 找出類別建構函式,並將 AutomaticMigrationsEnabled 值變更為 true。
public Configuration() { AutomaticMigrationsEnabled = true; }
開啟 Person 類別,並新增人員中間名的屬性。 有了這個新的屬性,您就會變更模型。
public class Person { public int PersonID { get; set; } public string FirstName { get; set; } public string LastName { get; set; } public string MiddleName { get; set; } }
選取 [建置] |在功能表上建置方案 以建置應用程式。
建置應用程式
在 [套件管理器主控台] 中,輸入下列命令:
PMC
Add-Migration AddMiddleName
此命令會尋找資料物件中的變更,然後新增必要的命令以據以修改資料庫。
新增中間名
(選擇性) 您可以執行下列命令,以產生具有差異更新的 SQL 腳本。 這可讓您手動更新資料庫 (在此情況下,不需要) ,或在其他資料庫中套用變更:
PMC
Update-Database -Script -SourceMigration: $InitialDatabase
產生 SQL 指令碼
SQL 腳本更新
在 [套件管理員主控台] 中,輸入下列命令來更新資料庫:
PMC
Update-Database -Verbose
更新資料庫
這會在人員資料表中新增MiddleName資料行,以符合Person類別的目前定義。
資料庫更新之後,以滑鼠右鍵按一下 [控制器] 資料夾,然後選取 [ 新增] |控制器 ,再次新增 Person 控制器, (以相同的值) 完成。 這會更新新增屬性的現有方法和檢視。
更新控制器
按一下 [新增] 。 然後,選取 [ 覆寫 PersonController.cs ] 值和 [覆寫相關聯的檢視 ],然後按一下 [ 確定]。
更新控制器
工作4- 執行應用程式
按 F5 鍵執行應用程式。
開啟 /Person。 請注意,資料會保留下來,同時新增中間名資料行。
已新增中間名
如果您按一下 [編輯],您將能夠將中間名新增至目前的人員。
總結
在此Hands-On實驗室中,您已瞭解使用任何模型類別建立具有 MVC 4 Scaffolding ASP.NET CRUD 作業的簡單步驟。 然後,您已瞭解如何使用 Entity Framework 移轉,在應用程式中執行端對端更新-從資料庫到檢視。
附錄 A:安裝 Visual Studio Express 2012 for Web
您可以使用 Microsoft Web Platform Installer 安裝Microsoft Visual Studio Express 2012 for Web或其他「快速」版本。 下列指示會引導您使用Microsoft Web Platform Installer安裝Visual Studio Express 2012 for Web所需的步驟。
前往 https://go.microsoft.com/?linkid=9810169。 或者,如果您已安裝 Web Platform Installer,您可以開啟它,並使用Windows Azure SDK 搜尋產品「Visual Studio Express 2012 for Web」。
按一下 [ 立即安裝]。 如果您沒有 Web Platform Installer ,系統會將您重新導向以下載並先安裝。
Web Platform Installer開啟之後,按一下 [安裝] 以啟動安裝程式。
安裝Visual Studio Express
閱讀所有產品的授權和條款,然後按一下 [ 我接受 ] 繼續。
接受授權條款
等候下載和安裝程式完成。
安裝進度
安裝完成時,按一下 [ 完成]。
安裝已完成
按一下 [結束 ] 以關閉 Web Platform Installer。
若要開啟 web Visual Studio Express,請移至 [開始]畫面並開始撰寫 「VS Express」,然後按一下[VS Express for Web] 圖格。
VS Express for Web 磚
附錄 B:使用程式碼片段
使用程式碼片段時,您有指尖所需的所有程式碼。 實驗室檔會確切告訴您何時可以使用它們,如下圖所示。
使用 Visual Studio 程式碼片段將程式碼插入專案中
僅使用鍵盤 (C# 新增程式碼片段)
- 將游標放在您要插入程式碼的位置。
- 開始輸入程式碼片段名稱, (不含空格或連字號) 。
- 監看 IntelliSense 會顯示相符的程式碼片段名稱。
- 選取正確的程式碼片段 (或持續輸入,直到選取整個程式碼片段的名稱) 為止。
- 按 Tab 鍵兩次,將程式碼片段插入游標位置。
開始輸入程式碼片段名稱
按 Tab 鍵以選取醒目提示的程式碼片段
再次按 Tab 鍵,程式碼片段將會展開
若要使用滑鼠 (C# 新增程式碼片段,Visual Basic 和 XML) 1. 以滑鼠右鍵按一下您要插入程式碼片段的位置。
- 選取 [插入程式碼片段 ],後面接著 [我的程式碼片段]。
- 按一下相關程式碼片段,從清單中挑選相關程式碼片段。
以]]
以滑鼠右鍵按一下您要插入程式碼片段的位置,然後選取 [插入程式碼片段]
按一下相關程式碼片段,從清單中挑選相關程式碼片段
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應