ASP.NET MVC - Code First - 來自資料庫的Code First

使用Code First進行專案開發,且已存在既有資料庫.

範例資料庫:北風資料庫(Northwnd).

這次的練習是使用北風資料庫進行,但是使用Code First方式,而不是Db First.

快來紀錄一下當中的眉眉角角吧 ~~

1. 確定伺服器總管有連接到Northwnd資料庫.若是使用vs 2017遇到問題的話,可參考ASP.NET MVC - 建置北風資料庫 

2. 點選Models資料夾並按右鍵,"加入" -> "新增項目" -> "ADO.NET 實體資料模型" ,這時候輸入的名稱,是EntityFramework模型的名稱,就把它當成是程式再用的資料庫模型,所以目前我會把名稱取得跟資料庫名稱一樣。

 

3. 選擇"來自資料庫的Code First",並點選下一步

 

4. 選擇使用的連線,如果連線已存在就可以直接選擇,那下面的Web.Config中的連接設定處存為,這個部分是設定在Web.Config裡的連線資訊。

5. 接下來會出現資料庫中的所有Table資訊,那可以勾選那些Table要出現在Models當中。勾選完點選"完成"。

6. 可以看到Models出現許多來自資料庫Table的類別

7. 開啟“套件管理主控台”,“工具” -> “NuGet封裝管理員” -> “套件管理主控台”

8. 第一次輸入的指令為,“Enable-Migrations”

若在專案當中有多個Context,那就要指定ContextName,指令:“Enable-Migrations -ContextTypeName 指定的context”,或者先輸入第一個指令,主控台回覆的錯誤訊息,會幫你把相關的指令帶出.

完成後我們可以看到資料夾中多了“Migrations資料夾”,這個資料夾會紀錄所有的更新資訊,而最後會依照這個資訊更新回資料庫.

9. 進行第一次的migration,migration動作是會比對目前的Model跟前一版的Model有什麼差異,並將差異寫入在Migration資料夾當中,但由於第一次Model結構是參考資料庫而來,故必須忽略此次的更新.

指令:Add-Migration InitialCreate –IgnoreChanges

InitialCreate,表示此次更新的名稱.

-IgnoreChanges,表示忽略此次更新的內容

10.將Migration資料更新回資料庫,指令:Update-Database