共用方式為


ASP.NET MVC 4 Entity Framework Scaffold 和移轉

Web Camp 小組

下載 Web Camps 培訓套件

如果您熟悉 ASP.NET MVC 4 控制器方法,或已完成「協助程式、表單和驗證」實際操作實驗室,您應該知道建立、更新、列出和移除任何數據實體的大部分邏輯都會在整個應用程式中重複執行。 更何況,如果您的模型有數個要操作的類別,您可能會花相當長的時間撰寫每個實體作業的 POST 和 GET 動作方法,以及每個檢視。

在此實驗室中,您將瞭解如何使用 ASP.NET MVC 4 Scaffolding 來自動產生應用程式的 CRUD 基準(建立、讀取、更新和刪除)。 從簡單的模型類別開始,而且不需要撰寫單行程式代碼,您將建立控制器,其中包含所有 CRUD 作業,以及所有必要的檢視。 建置並執行簡單解決方案之後,您將會產生應用程式資料庫,以及用於資料操作的MVC邏輯和檢視。

此外,您將瞭解如何使用 Entity Framework 移轉在整個應用程式中執行模型更新是多麼容易。 Entity Framework 移轉可讓您在模型變更後使用簡單步驟來修改資料庫。 考慮到這一切,您將能夠更有效率地建置和維護 Web 應用程式,並利用 ASP.NET MVC 4 的最新功能。

注意

所有範例程式代碼和代碼段都包含在 Web Camp 訓練套件中,可從 Microsoft-Web/WebCampTrainingKit 版本取得。 此實驗室專屬的專案可在MVC 4 Entity Framework Scaffolding和 Migrations ASP.NET 取得

目標

在此實際操作實驗室中,您將瞭解如何:

  • 在控制器中使用 ASP.NET CRUD 作業的 Scaffolding。
  • 使用 Entity Framework 移轉變更資料庫模型。

必要條件

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

設定

安裝程式碼片段

為方便起見,您將在本實驗中管理的大部分程式碼都以 Visual Studio 程式碼片段的形式提供。 若要安裝程式碼片段,請執行 .\Source\Setup\CodeSnippets.vsi 檔案。

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


練習

下列練習組成此實際操作實驗室:

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

注意

此練習隨附 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) 的類別。 將它命名為 [人員 ],然後按兩下 [ 確定]。

  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. 在 [ 模型類別 ] 下拉式清單中,選取 [人員 ] 類別。

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

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

      使用 Scaffolding 新增 Person 控制器

      使用 Scaffolding 新增 Person 控制器

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

    使用 Scaffolding 建立 Person 控制器之後

    使用 Scaffolding 建立 Person 控制器之後

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

人員控制者內部

人員控制者內部

工作 2- 執行應用程式

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

  1. F5 執行應用程式。

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

    應用程式初次執行

    應用程式:初次執行

  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. [ 移轉] 資料夾中開啟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 腳本更新

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

    PMC

    Update-Database -Verbose
    

    更新資料庫

    更新資料庫

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

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

    新增控制器更新

    更新控制器

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

新增控制器覆寫

更新控制器

工作4- 執行應用程式

  1. F5 執行應用程式。

  2. 開啟 /Person。 請注意,已保留數據,同時新增中間名數據行。

    已新增中間名

    已新增中間名

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

    中間名版本


摘要

在此實際操作實驗室中,您已瞭解使用任何模型類別建立具有MVC 4 Scaffolding ASP.NET CRUD 作業的簡單步驟。 然後,您已瞭解如何使用 Entity Framework 移轉,在應用程式中執行端對端更新,從資料庫到檢視。

附錄 A:安裝 Visual Studio Express 2012 for Web

您可以使用 Microsoft Web 平台安裝程式安裝 Microsoft Visual Studio Express 2012 for Web 或其他「Express」版本。 以下說明將引導您使用 Microsoft Web 平台安裝程式安裝 Visual studio Express 2012 for Web 所需的步驟。

  1. 移至 https://learn.microsoft.com/iis/extensions/introduction-to-iis-express/iis-express-overview?linkid=9810169。 或者,如果您已安裝 Web Platform Installer,您可以開啟它,並搜尋產品「Visual Studio Express 2012 for Web with Windows Azure SDK」。

  2. 按一下立即安裝。 如果您沒有 Web 平台安裝程式,您將被重定向到首先下載並安裝它。

  3. Web 平台安裝程式開啟後,按一下安裝開始安裝。

    安裝 Visual Studio Express

    安裝 Visual Studio Express

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

    接受授權條款

    接受授權條款

  5. 等待下載和安裝過程完成。

    安裝進度

    安裝進度

  6. 安裝完成後,按一下完成

    安裝完成

    安裝完成

  7. 按一下退出關閉 Web 平台安裝程式。

  8. 若要開啟 Visual Studio Express for Web,請前往開始畫面並開始編寫 VS Express,然後按一下 VS Express for Web 圖格。

    VS Express Web 圖格

    VS Express 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. 按一下從清單中選擇相關片段。

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

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

按一下從清單中選擇相關片段

按一下從清單中選擇相關片段