這一集YT主要講使用者登入一個線上課程網站的製作
當然有首頁採用英雄式標題首頁,何謂英雄式首頁將一個主題填滿整個畫面
首頁有各式課程主題,使用者點選某一課程,會請你輸入帳密,沒有就進入註冊畫面
使用者依帳號進入可選擇你喜歡的課程,而管理員可自訂課程類別及課程項目等上架機制
以上為該系統需求概述,而作者採用Code First來建立MVC,這跟之前看印度YT都採用DB First
不一樣,在剛回來高雄時有照著微軟的導引手冊做過Code First不過那時不是很理解
只是無腦把它做完,老實說只有一點感覺,發現在中的專案就採用Code First,
但現在我還是不知道為甚麼要用Code First他到底有甚麼優點?
為什麼就不用DB First很好理解阿.........................
不過就慢慢地發覺.......................或許有我不知道的事
第一個觀念
在使用Code First有依一個很重要的觀念,當你建立新專案採用.Net Core MVC
會有Migrations資料夾,換言之你透過程式碼撰寫資料庫欄位都會存在此資料夾內,
並未更新至資料庫,必須使用套件管理主控台進行更新至實體資料庫,
當然更新置資料庫有很多情況,這邊重要觀念是程式碼所規劃的欄位都在此處,
必須使用主控台進行更新至資料庫。
查找相關文章果然重要,簡單講當資料欄位異動時可以透過Migrations做資料異動版本,好處可以不用頻繁開資料庫更新EF。
第二個觀念
使用Code First對於環境設定必須注意,他不像DB First對於環境採用內定值怎麼簡單
首先是appsettings.json設定資料庫連線字串包含資料庫名稱及資料庫名稱
2.ApplicationDbContext.cs這個檔案似乎在定義Table欄位地方,觀念必須在實作
這一次開專案驗證選擇個人平常都選擇無,而這個驗證選個人用戶,意思微軟就幫你建好角色
相關Table,以前在微軟的技術文件有看過,但翻譯過來有點艱澀難懂,可是就是我認為要學
的東西也就是說權限帳號,這是一個系統最基本的東西,沒有權限帳號所有功能及需求,
都無法展現,今天看這YT就那麼簡單勾一下個人用戶相關表格就出來,當然如何使用再看
這次實驗要在微軟的其中權限帳號表格擴充欄位,步驟如下
1.appsettings.json設定資料庫連結
2.ApplicationDbContext.cs擴充AppclationUser Class裡面共計5個欄位
要注意public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
必須加入黑色粗體因為AppclationUser Class是繼承ApplicationDbContext
第五集主要是講Migrations可形成資料版本可使用以下指令
Add-Migrations 版本名稱
所以當你的ApplicationDbContext.cs欄位有所異動時,可使用此指令增加版本新增
update-dabase 此指令將最新的異動更新至資料庫
若你要回到之前某一個異動版本可執行 update-database 異動檔名稱
當然你要刪除某一個異動檔 remove-database 異動檔名稱
沒有留言:
張貼留言