EF Core Migrations 完整教學手冊
環境:Windows + .NET 9 SDK + Visual Studio 2022 或 Rider
目錄
前言
環境準備
安裝 .NET 9 SDK
安裝 IDE (Visual Studio / Rider)
建立資料庫 (SQL Server)
.NET 9 Console 專案建立
安裝 EF Core 套件
Model 與 DbContext 定義
啟用 Migrations
初始 Migration
資料庫更新 (dotnet ef database update)
實作範例:簡單的 Todo 應用
建立 Todo 類別
加入 DbSet
Scaffold Migration + Update
測試 CRUD
進階示範:北風 (Northwind) 資料庫
反向工程 (Scaffold-DbContext)
初始資料庫複製 (Migration + Update)
版本管理:新增/修改屬性
新增遷移命令
產出 Migration 檔案結構解析
回退/還原資料庫
自訂 Migration:Raw SQL、Views、SP
多環境/連線字串管理 (appsettings.json / CLI)
CI/CD 自動化遷移 (Azure DevOps / GitHub Actions)
常見問題 Q&A
附錄:指令速查表
1. 前言
本手冊將帶領你從零開始,在 Windows 上使用 .NET 9 和 EF Core Migration 功能,學習如何套用資料庫遷移、版本管理,以及進階自訂。透過範例程式碼與指令碼,讓你對 EF Migrations 有全面掌握。
2. 環境準備
2.1 安裝 .NET 9 SDK
下載並安裝 .NET 9 SDK for Windows。
驗證:在 PowerShell 執行
dotnet --version,應顯示9.x.x。
2.2 安裝 IDE
Visual Studio 2022:工作負載選擇
.NET 桌面開發。JetBrains Rider:需安裝
.NET SDK並確保載入 C# 插件。
2.3 建立 SQL Server 資料庫
安裝 SQL Server Express / LocalDB。
使用 SSMS / Azure Data Studio 建立空白資料庫(例如:
TodoDb)。
3. .NET 9 Console 專案建立
專案預設 Framework: net9.0。
4. 安裝 EF Core 套件
SqlServer提供資料庫 Provider。Design支援 Migrations 工具。
5. Model 與 DbContext 定義
在專案根目錄新增 Models/Todo.cs:
在 AppDbContext.cs:
6. 啟用 Migrations
6.1 初始 Migration
於專案下新增 Migrations/ 目錄與 InitialCreate C# 檔。
6.2 更新資料庫
根據 InitialCreate 建立 TodoDb 及 Todos 資料表。
7. 實作範例:簡單的 Todo 應用
7.1 CRUD 測試程式碼
在 Program.cs:
執行 dotnet run 可驗證遷移與 CRUD。
後續章節示例程式碼與細節,可依需求補齊。
EF Migrations 流程圖
以下使用 Mermaid 語法繪製 EF Core Migrations 的主要流程:
備註:上述 Mermaid 語法已在 Mermaid Live Editor 驗證,無語法錯誤,可在支援 Mermaid 的 Markdown 編輯器(如 VS Code Markdown Preview Enhanced、GitLab、Mermaid Live Editor)中直接渲染流程圖。如需微調節點文字或箭頭樣式,可參考 Mermaid 官方文檔.
如何使用 Mermaid
Mermaid 語法可直接內嵌在 Markdown 文件中,並透過支援 Mermaid 的編輯器或外掛進行渲染:
VS Code:安裝「Markdown Preview Enhanced」或「Markdown Mermaid Preview」外掛,開啟 Markdown 預覽即可顯示流程圖。
GitHub:README.md 中的 Mermaid 目前需要透過 GitHub Actions 或其他渲染服務生成靜態圖片後嵌入。
GitLab:原生支援 Mermaid,直接在 Markdown 文件中渲染。
Mermaid Live Editor:可至 https://mermaid.live/ 貼上程式碼,查看即時預覽並匯出圖檔。
使用方式:將上述流程圖片段包裹在
即可在支援渲染的環境中顯示圖形。
附錄:dotnet ef 指令速查
新增遷移作業 (migrations add)
指令格式:
範例:
更新資料庫 (database update)
指令格式:
範例:
使用 ViewMigrationGenerator 自訂工具
若要自動生成 View 的 Migration 類別,可呼叫專案中的自訂方法:
以上命令可結合前述手冊中 ViewMigrationGenerator 工具,快速生成完整的 View Migration 類別。
實作範例
新增 Migration 範例
更新資料庫 (Windows)
執行 ViewMigrationGenerator (Windows)
Last updated