ASP.NET MVC 4 Entity Framework Scaffold 和移轉

Web 擷取小組

下載 Web Training Kit

如果您熟悉 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 移轉變更資料庫模型。

必要條件

您必須有下列專案才能完成此實驗室:

安裝程式

安裝程式碼片段

為了方便起見,您將在此實驗室中管理的大部分程式碼都可以作為 Visual Studio 程式碼片段使用。 若要安裝程式碼片段,請執行 .\Source\Setup\CodeSnippets.vsi 檔案。

如果您不熟悉Visual Studio Code程式碼片段,而且想要瞭解如何使用這些程式碼片段,您可以參閱本檔中的附錄「附錄 B:使用程式碼片段」。


Exercises

下列練習構成此Hands-On實驗室:

  1. 搭配 Entity Framework 移轉使用 ASP.NET MVC 4 Scaffolding

注意

此練習隨附 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 專案

  1. 如果尚未開啟,請啟動 Visual Studio 2012

  2. 選取 檔案 |新增專案。 在 [新增專案] 對話方塊的 [Visual C#] 下 |Web 區段,選取 [ASP.NET MVC 4 Web 應用程式]。 將專案命名為 MVC4andEFMigrations ,並將位置設定為此實驗室的 Source\Ex1-UsingMVC4ScaffoldingEFMigrations 資料夾。 將 [方案名稱 ] 設定為 [開始 ],並確定已核取 解決方案的 [建立目錄 ]。 按一下 [確定]。

    新 ASP.NET MVC 4 專案對話方塊

    新增 ASP.NET MVC 4 專案對話方塊

  3. 在 [ 新增 ASP.NET MVC 4 專案 ] 對話方塊中,選取 [網際網路應用程式 ] 範本,並確定 Razor 是選取的 [檢視引擎]。 按一下 [確定] 以建立專案。

    新的 ASP.NET MVC 4 網際網路應用程式

    新的 ASP.NET MVC 4 網際網路應用程式

  4. 在方案總管中,以滑鼠右鍵按一下[模型],然後選取 [新增] |建立簡單類別人員 (POCO) 。 將它命名為 Person ,然後按一下 [ 確定]。

  5. 開啟 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; }        
        }
    }
    
  6. 按一下 [建置] |建置方案 以儲存變更並建置專案。

    顯示Visual Studio Express 2012 的螢幕擷取畫面,其中顯示 [建置] 功能表,然後選取 [建置方案]。

    建置應用程式

  7. 在方案總管中,以滑鼠右鍵按一下 controllers 資料夾,然後選取 [新增] |控制器

  8. 將控制器命名為 PersonController ,並使用下列值完成 Scaffolding 選項

    1. 在 [ 範本 ] 下拉式清單中, 使用 Entity Framework 選項選取具有讀取/寫入動作和檢視的 MVC 控制器

    2. 在 [ 模型類別 ] 下拉式清單中,選取 Person 類別。

    3. 在 [資料內容類別別]清單中,選取 [< 新增資料內容... >]。 選擇任何名稱,然後按一下 [ 確定]。

    4. 在 [ 檢視 ] 下拉式清單中,確定已選取 Razor

      使用 Scaffolding 新增人員控制器搭配

      使用 Scaffolding 新增 Person 控制器

  9. 按一下 [新增 ] 以建立具有 Scaffolding 之 Person 的新控制器。 您現在已產生控制器動作以及檢視。

    使用 Scaffolding 建立 Person 控制器之後

    使用 Scaffolding 建立 Person 控制器之後

  10. 開啟 PersonController 類別。 請注意,系統會自動產生完整的 CRUD 動作方法。

人員控制器內部人員

在人員控制站內

工作 2- 執行應用程式

此時尚未建立資料庫。 在這項工作中,您將第一次執行應用程式,並測試 CRUD 作業。 系統會使用 Code First 即時建立資料庫。

  1. F5 鍵執行應用程式。

  2. 在瀏覽器中,將 /Person 新增至 URL 以開啟 Person 頁面。

    應用程式第一次執行應用程式第

    應用程式:初次執行

  3. 您現在將會探索 Person 頁面,並測試 CRUD 作業。

    1. 按一下 [ 新建 ] 以新增人員。 輸入名字和姓氏,然後按一下 [ 建立]。

      新增人員 新增

      新增人員

    2. 在人員的清單中,您可以刪除、編輯或新增專案。

      人員清單人員清單

      人員清單

    3. 按一下 [詳細資料 ] 以開啟人員的詳細資料。

      人員的詳細資料人員

      人員的詳細資料

  4. 關閉瀏覽器並返回 Visual Studio。 請注意,您已在整個應用程式中為人員實體建立整個 CRUD,從模型到檢視,而不需要撰寫單行程式碼!

工作 3- 使用 Entity Framework 移轉更新資料庫

在這項工作中,您將使用 Entity Framework 移轉來更新資料庫。 您將探索使用 Entity Framework 移轉功能來變更模型並反映資料庫中的變更有多容易。

  1. 開啟套件管理員主控台。 選取 [工具]>[NuGet 套件管理員]>[套件管理員主控台]。

  2. 在 [套件管理器主控台] 中,輸入下列命令:

    PMC

    Enable-Migrations -ContextTypeName [ContextClassName]
    

    啟用移

    啟用移轉

    Enable-Migration命令會建立 Migrations 資料夾,其中包含初始化資料庫的腳本。

    Migrations 資料夾

    Migrations 資料夾

  3. 在 Migrations 資料夾中開啟 Configuration.cs 檔案。 找出類別建構函式,並將 AutomaticMigrationsEnabled 值變更為 true

    public Configuration()
    {
        AutomaticMigrationsEnabled = true;
    }
    
  4. 開啟 Person 類別,並新增人員中間名的屬性。 有了這個新的屬性,您就會變更模型。

    public class Person
    {
        public int PersonID { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string MiddleName { get; set; }
    }
    
  5. 選取 [建置] |在功能表上建置方案 以建置應用程式。

    顯示 [建置] 功能表的螢幕擷取畫面,然後選取 [建置方案]。

    建置應用程式

  6. 在 [套件管理器主控台] 中,輸入下列命令:

    PMC

    Add-Migration AddMiddleName
    

    此命令會尋找資料物件中的變更,然後新增必要的命令以據以修改資料庫。

    新增中間名

    新增中間名

  7. (選擇性) 您可以執行下列命令,以產生具有差異更新的 SQL 腳本。 這可讓您手動更新資料庫 (在此情況下,不需要) ,或在其他資料庫中套用變更:

    PMC

    Update-Database -Script -SourceMigration:
    
    $InitialDatabase
    

    產生 SQL 腳本

    產生 SQL 指令碼

    SQL 腳本更新 SQL

    SQL 腳本更新

  8. 在 [套件管理員主控台] 中,輸入下列命令來更新資料庫:

    PMC

    Update-Database -Verbose
    

    更新資料庫

    更新資料庫

    這會在人員資料表中新增MiddleName資料行,以符合Person類別的目前定義。

  9. 資料庫更新之後,以滑鼠右鍵按一下 [控制器] 資料夾,然後選取 [ 新增] |控制器 ,再次新增 Person 控制器, (以相同的值) 完成。 這會更新新增屬性的現有方法和檢視。

    新增控制器更新

    更新控制器

  10. 按一下 [新增] 。 然後,選取 [ 覆寫 PersonController.cs ] 值和 [覆寫相關聯的檢視 ],然後按一下 [ 確定]。

新增控制器覆寫

更新控制器

工作4- 執行應用程式

  1. F5 鍵執行應用程式。

  2. 開啟 /Person。 請注意,資料會保留下來,同時新增中間名資料行。

    已新增中間名

    已新增中間名

  3. 如果您按一下 [編輯],您將能夠將中間名新增至目前的人員。

    中間名版中間


總結

在此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所需的步驟。

  1. 前往 https://go.microsoft.com/?linkid=9810169。 或者,如果您已安裝 Web Platform Installer,您可以開啟它,並使用Windows Azure SDK 搜尋產品「Visual Studio Express 2012 for Web」。

  2. 按一下 [ 立即安裝]。 如果您沒有 Web Platform Installer ,系統會將您重新導向以下載並先安裝。

  3. Web Platform Installer開啟之後,按一下 [安裝] 以啟動安裝程式。

    安裝 Visual Studio Express

    安裝Visual Studio Express

  4. 閱讀所有產品的授權和條款,然後按一下 [ 我接受 ] 繼續。

    接受授權條款

    接受授權條款

  5. 等候下載和安裝程式完成。

    安裝進度

    安裝進度

  6. 安裝完成時,按一下 [ 完成]。

    安裝已完成

    安裝已完成

  7. 按一下 [結束 ] 以關閉 Web Platform Installer。

  8. 若要開啟 web Visual Studio Express,請移至 [開始]畫面並開始撰寫 「VS Express」,然後按一下[VS Express for Web] 圖格。

    VS Express for Web 磚

    VS Express for Web 磚

附錄 B:使用程式碼片段

使用程式碼片段時,您有指尖所需的所有程式碼。 實驗室檔會確切告訴您何時可以使用它們,如下圖所示。

使用 Visual Studio 程式碼片段將程式碼插入專案中

使用 Visual Studio 程式碼片段將程式碼插入專案中

僅使用鍵盤 (C# 新增程式碼片段)

  1. 將游標放在您要插入程式碼的位置。
  2. 開始輸入程式碼片段名稱, (不含空格或連字號) 。
  3. 監看 IntelliSense 會顯示相符的程式碼片段名稱。
  4. 選取正確的程式碼片段 (或持續輸入,直到選取整個程式碼片段的名稱) 為止。
  5. 按 Tab 鍵兩次,將程式碼片段插入游標位置。

開始輸入程式碼片段名稱

開始輸入程式碼片段名稱

按 Tab 鍵選取醒目提示的程式碼片段

按 Tab 鍵以選取醒目提示的程式碼片段

再次按 Tab 鍵,程式碼片段會再次展開

再次按 Tab 鍵,程式碼片段將會展開

若要使用滑鼠 (C# 新增程式碼片段,Visual Basic 和 XML) 1. 以滑鼠右鍵按一下您要插入程式碼片段的位置。

  1. 選取 [插入程式碼片段 ],後面接著 [我的程式碼片段]。
  2. 按一下相關程式碼片段,從清單中挑選相關程式碼片段。

滑鼠右鍵按一下您要插入程式碼片段的位置,然後選取 [插入程式碼片段以]]

以滑鼠右鍵按一下您要插入程式碼片段的位置,然後選取 [插入程式碼片段]

從清單中挑選相關的程式碼片段,方法是按一下它

按一下相關程式碼片段,從清單中挑選相關程式碼片段