使用EF Core在既有資料庫(Model First or DB First)的注意事項

EF Core Memo

最近開始嘗試.net core,畢竟已經更新到2.2產品穩定度跟成熟度都比前一版好上很多,剛好手頭上有個小project就來試用
 

EF Core

既然用了.net不免俗的一定會用到官方推薦的ORM EntityFramework,沒想到第一關就出現了問題

在一般情形下我們習慣把DB拆成獨立的專案做分層,再加入到實作邏輯的專案參考,因為我本來就有既存的DB,我使用了下面這一段
Scaffold-DbContext "Server=(localdb)\mssqllocaldb;Database=Blogging;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models
 

一開始順利成功了的產出了對應我的DB的DAO

但是隨著專案的進行有些資料表有修改欄位,所以我重新執行了一次Scaffold-DbContext,但是這次就出現了Build Fail,查詢了輸出指令,出現了xxx欄位不存在,後來在工程師的老朋友stackoverflow查到了這一篇
https://stackoverflow.com/questions/38961115/build-failed-on-database-first-scaffold-dbcontext
原來在進行Scaffold-DbContext他會先build一次專案,當build專案失敗的時候,Scaffold-DbContext就會停止動作

以上