原文: 學習ASP.NET Core Razor 程式設計系列十一——把新字段更新到資料庫 學習ASP.NET Core Razor 程式設計系列目錄 學習ASP.NET Core Razor 程式設計系列一 學習ASP.NET Core Razor 程式設計系列二——添加一個實體 學習ASP.NET Core Razor 程式設計系列三——建立資料表及建立項目基本頁面 學習ASP.NET Core Razor 程式設計系列四——Asp.Net Core Razor清單模闆頁面 學習ASP.NET Core Razor 程式設計系列五——Asp.Net Core Razor建立模闆頁面 學習ASP.NET Core Razor 程式設計系列六——資料庫初始化 學習ASP.NET Core Razor 程式設計系列七——修改清單頁面 學習ASP.NET Core Razor 程式設計系列八——并發處理 學習ASP.NET Core Razor 程式設計系列九——增加查詢功能 學習ASP.NET Core Razor 程式設計系列十——添加新字段
在經過了上面篇文章的學習之後,本篇文章我們來學習如何使用 Entity Framework Code First 遷移功能将新字段添加到模型,并且同時将新字段添加到資料庫中。
使用 EF Code First 自動建立資料庫時,Code First 會向資料庫添加一個表,以幫助跟蹤資料庫的架構是否與生成它的實體類同步。 如果它們不同步,EF 就會引發異常。 這樣一來就更容易發現一緻的資料庫表或者代碼問題。
我們接下來使用Code First遷移功能更新資料庫。
1. 現在我們來修改seeddata類,在類中增加一個Publishing字段,并提供資料。修改示例如下所示,你可以對每一本書籍資訊都參照修改。
context.Book.AddRange(
new Book
{
Name = "Python程式設計 從入門到實踐",
ReleaseDate = DateTime.Parse("2018-1-12"),
Author = "埃裡克·馬瑟斯",
Price = 75.99M,
Publishing="機械出版社"
},
2. 在Visual Studio 2017菜單中選擇生成->生成解決方案
3.在Visual Studio 2017的菜單中選擇“工具”菜單-->“NuGet 包管理器”>“包管理器控制台”。 如下圖。

4. 在 PMC 中,輸入以下指令,如圖:
Add-Migration Publishing
Add-Migration 指令會通知架構執行以下操作:
1) 将 Book實體類與 資料庫中的Book表進行比較。
2) 建立代碼以将在資料庫中對表Books表結構進行更新。如下圖。
3) Visual Studio 2017對于有新字段“Publishing”的遷移檔案的命名是目前日期+字段名稱。這樣命名這樣有助于管理。如下圖。
5. 在執行完上面的指令之後,在 PMC 中,輸入以下指令,如圖:
Update-Database
7. 在執行完以上指令之後,在資料庫中添加了Publishing字段。如下圖。
8. 雖然我們把字段添加 到資料庫,但是這個字段,卻是沒有資料的。如下圖。
那如何給字段同值呢?
- 如果你是開發,而且已經修改了初始化類SeedData類。那麼可以參考( )給資料庫初始化資料。
- 如果你把所有的記錄從資料庫中删除。你可以在浏覽器中打開書籍清單頁面,然後使用删除連結删除記錄,也可以使用SQL Server對象資料總管(SQL Server Management Studio)使用SQL語句把資料從資料庫中删除。
現在我們在visual studio 2017中按F5運作應用程式,應用程式不會在如上一篇文章那樣報錯了。在應用程式運作起來之後,在浏覽器中分别打開建立/編輯/清單頁面,驗證這些頁面中是否已經有了publishing 字段的書籍資訊。如下圖。
清單頁面:
建立頁面:
編輯頁面: