.NET Core 3.1 API 專案使用 Entity Framework Core ( Visual Studio 2019 )
此篇要使用 Entity Framework Core 來操作資料庫
延續上一篇 「建立 ASP.NET Core 3.1 API 專案 ( Visual Studio 2019 )」的專案繼續往下示範
http://greens2314.blogspot.com/2020/09/aspnet-core-3-api.html
本篇共有 8 個步驟
1. 安裝相關的 Nuget 套件
2. 新增模型類別 Model
3. 新增資料內容類別 DbContect
4. 新增資料庫連線
5. 新增資料移轉設定檔 Migration
6. 更新資料庫
7. 新增 API
8. 執行 API
1. 安裝相關的 Nuget 套件
在專案「相依性」 按右鍵,點選「管理 Nuget 套件」
請安裝以下4個套件
Microsoft.EntityFrameworkCore
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.Tools
2. 新增模型類別 Model
新增「 Models」 資料夾,來存放實體模型
將資料庫的每張「資料表」轉成「 類別」來儲存
後續我們會透過 code first 的方式,將這些類別轉換成資料表
新增「User.cs」實體類別
在「Models」資料夾按滑鼠右鍵,選「加入 / 類別」
設定字串長度 [StringLength(10)]
主鍵是否自動增加 [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
3. 新增資料內容類別 DbContect
在「Models」資料夾內新增「DemoContext.cs」並繼承 「DbContext」
新增一個 DbSet 型態的 Users 屬性,表示 User 實體的集合
如果你有多個實體類別,那就需要再這邊宣告多個 DbSet 型態的屬性
有了 DemoContext 後,就可以透過方法,去新增或刪除 Users 的內容
4. 新增資料庫連線
編輯「appsettings.json」
請新增資料庫連線字串
"ConnectionStrings": {
"DefaultConnection":"Server=ADMIN\\SQLEXPRESS;Database=Demo;Trusted_Connection=True"
}
編輯「Startup.cs」
在 ConfigureServices 方法中
呼叫 AddDbContext() 方法將剛剛新增好的 DemoContext 注入
並設定使用 SqlServer
資料庫連線字串會去讀取 appsettings.json 中 DefaultConnection 所設定的內容
services.AddDbContext<DemoContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
5. 新增資料移轉設定檔 Migration
因為這篇是使用 code first 的方式產生資料庫
而將模型類別轉成資料庫須透過 Migration
請開啟「套件管理器主控台」
新增 Migration 的指令「 Add-Migration 名稱」
例如下圖,指令是「 add-migration init」
則會產生檔名結尾為 init 的檔案 (會自動產生 「Migrations」 資料夾)
開啟 20200910030934_init.cs 可以查看 Entity Framework Core 如何將差異更新到資料庫
6. 更新資料庫
如果要將 Migration 設定更新或套用到資料庫
請執行「Update-Database 某一個現有 Migration 的名稱」
例如下圖,指令是 「update-database init」
指令執行完成之後,可以開啟資料庫檢查更新是否正確
如下圖所示
我的資料庫自動新增了一個名稱為「Demo」的資料庫
且包含一個名稱為「Users」的資料表與「__EFMigrationsHistory」資料表
成功執行的 Migration 都會記錄在「__EFMigrationsHistory」資料表中
雖然步驟很繁瑣,但習慣就好了XD
優點是每次的資料表變更都可以加入版控,十分的方便哦!
7. 新增 API
接下來我們要使用 Scaffold 來建立程式碼
請在「Controllers」資料夾按右鍵,選「加入 > 控制器」
請選擇「使用 Entity Framework 執行動作的 API 控制器」,按「加入」
請選擇要使用的模型類別 User、資料內容類別 DemoContext 與輸入控制器名稱 UserController
UserController.cs 就會自動產生囉!
8. 執行 API
實際來 run 一下
請按 F5 或是在工具列 > 偵錯 > 開始偵錯
把網站執行起來
使用 postman 來測試 API
新增一筆資料 POST api/Users
取得所有資料 GET api/Users
留言
張貼留言