共用方式為


教學課程:使用 ASP.NET MVC 應用程式變更 EF Database First 資料庫

您可以使用 MVC、Entity Framework 和 ASP.NET Scaffolding 來建立 Web 應用程式,藉此為現有資料庫提供介面。 本教學課程系列說明如何自動產生程式碼,讓使用者能夠顯示、編輯、建立和刪除資料庫表格中的資料。 產生的程式碼會對應至資料庫表格中的欄。

本教學課程的重點是更新資料庫結構,並將變更傳播至整個 Web 應用程式。

在本教學課程中,您已:

  • 新增欄
  • 將屬性新增至檢視。

必要條件

新增欄

如果您更新資料庫表格的結構,您必須確認變更會傳播至資料模型、檢視和控制器。

在本教學課程中,您會將新的欄新增至「Student」資料表,藉此記錄學生的中間名。 若要新增此欄,請開啟資料庫專案,然後開啟 Student.sql 檔案。 透過設計工具或 T-SQL 程式碼,新增名為 MiddleName 的欄,該欄為 NVARCHAR(50) 且允許 NULL 值。

啟動資料庫專案 (或按 F5),將此變更部署至本機資料庫。 新的欄位會新增到資料表。 如果 SQL Server 物件總管沒有顯示變更,請按一下窗格中的 [重新整理] 按鈕。

顯示新欄

新的欄存在於資料庫表格中,但目前不存在於資料模型類別中。 您必須更新模型,才能加入新的欄。 在 Models 資料夾中開啟 ContosoModel.edmx 檔案以顯示模型圖表。 請注意,Student 模型並不包含 MiddleName 屬性。 以滑鼠右鍵按一下設計介面上的任何位置,然後選取 [更新資料庫的模型]

在「更新精靈」中,選取 [重新整理] 索引標籤,然後選取 [表格]>[dbo]>[Student]。 按一下完成

更新程序完成後,資料庫圖表就會包含新的 MiddleName 屬性。 儲存 ContosoModel.edmx 檔案。 您必須儲存此檔案,才能讓新屬性傳播到 Student.cs 類別。 至此您已更新資料庫和模型。

建置方案。

將屬性新增至檢視。

只是,檢視仍然不包含新的屬性。 若要更新檢視,您有兩種方法可選 - 再次新增 Student 類別的 Scaffolding 來重新產生檢視,或手動新增屬性至現有的檢視。 在本教學課程,您會再次新增 Scaffolding,因為您尚未對自動產生的檢視進行任何自訂變更。 如果您對檢視作出變更且不想遺失這些變更,可考慮手動新增屬性。

若要確保檢視會重新建立,請刪除 [檢視] 底下的「Students」資料夾,並刪除「StudentsController」。 然後,以滑鼠右鍵按一下「Controllers」資料夾,新增 Student 模型的 Scaffolding。 同樣地,將控制器命名為 StudentsController。 選取 [新增]。

再次建立解決方案。 檢視現在已包含 MiddleName 屬性。

顯示中間名

下一步

在本教學課程中,您已:

  • 已新增欄。
  • 已將屬性新增至檢視。

繼續下一個教學課程,瞭解如何自訂檢視,以便顯示學生記錄的詳細資料。