在使用 Entity Framework Core
時,若你希望通過 Package Manager Console (PMC) 執行遷移相關命令,以下是常用的 EF Core
遷移命令:
PMC 方式
? 常用 EF Core PMC 命令(適用于遷移)
操作 | PMC 命令 |
---|---|
添加遷移 | Add-Migration MigrationName |
更新數據庫到最新遷移 | Update-Database |
回滾一個遷移 | Update-Database -ToMigration PreviousMigrationName |
刪除最后一次遷移(未應用到數據庫) | Remove-Migration |
查看遷移歷史 | Get-Migrations |
生成 SQL 腳本(從某一遷移到另一遷移) | Script-Migration -From MigrationA -To MigrationB |
生成 SQL 腳本(所有遷移) | Script-Migration |
📝 示例:
- 假設你添加了一個名為
InitialCreate
的遷移:
Add-Migration InitialCreate
- 然后將更改應用到數據庫:
Update-Database
- 如果想回退到上一個遷移:
Update-Database -ToMigration PreviousMigrationName
?? 注意事項:
-
使用這些命令前,請確保:
- 已安裝
Microsoft.EntityFrameworkCore.Tools
NuGet 包; - 在
Visual Studio
中打開了 Package Manager Console; - 默認項目(
Default project
下拉框)選擇的是包含DbContext
的項目。
- 已安裝
-
如果你使用的是多項目結構,請確保啟動項目和遷移所在項目一致或已正確配置設計時工廠(
IDesignTimeDbContextFactory
)。
CLI 方式
以下是 EF Core 對應于 CLI(命令行接口)的常用遷移命令,適用于 .NET CLI 工具:
? 常用 EF Core CLI 遷移命令
操作 | CLI 命令 |
---|---|
添加遷移 | dotnet ef migrations add MigrationName |
刪除最后一次遷移 | dotnet ef migrations remove |
更新數據庫 | dotnet ef database update |
更新數據庫到指定遷移 | dotnet ef database update TargetMigrationName |
查看遷移歷史 | dotnet ef migrations list |
生成 SQL 腳本(從某一遷移到另一遷移) | dotnet ef migrations script -o output.sql FromMigration ToMigration |
生成 SQL 腳本(所有遷移) | dotnet ef migrations script -o output.sql |
📝 示例:
- 添加一個名為
InitialCreate
的遷移:
dotnet ef migrations add InitialCreate
- 應用遷移到數據庫:
dotnet ef database update
- 回退到某個特定遷移:
dotnet ef database update PreviousMigrationName
- 刪除最后一次遷移(尚未應用到數據庫時):
dotnet ef migrations remove
- 生成從
MigrationA
到MigrationB
的SQL
腳本:
dotnet ef migrations script -o migration_diff.sql MigrationA MigrationB
?? 注意事項:
-
使用前請確保:
- 已安裝
.NET SDK
; - 項目中已引用
Microsoft.EntityFrameworkCore.Design
和Microsoft.EntityFrameworkCore.Tools
; - 你的項目是可啟動項目或已正確配置
DbContext
。
- 已安裝
-
如果使用多項目結構,請在 CLI 中切換到包含
DbContext
的項目目錄,或使用-p
參數指定項目路徑。例如:
dotnet ef migrations add MyMigration -p ./MyProject/MyProject.csproj
🧠 選擇合適的方式
EF Core
中 PMC
(Package Manager Console
)和 CLI
(命令行接口)的遷移命令功能相同,但語法不同:
- PMC 使用
Add-Migration
、Update-Database
等 PowerShell 風格命令; - CLI 使用
dotnet ef migrations add
、dotnet ef database update
等 .NET CLI 命令。
在選擇 EF Core 遷移命令方式時,根據使用場景可以做如下推薦:
? 推薦使用 PMC(Package Manager Console):
- 適用人群:Visual Studio 用戶、不熟悉命令行操作的開發者;
- 優點:
- 操作簡單,集成在 Visual Studio 中;
- 不需要切換終端或目錄;
- 支持自動補全和命令提示。
- 缺點:
- 只能在 Windows 上使用;
- 不適合自動化腳本。
📌 當你在 Visual Studio 中開發 ASP.NET Core 或 .NET Framework 項目時,首選 PMC。
? 推薦使用 CLI(.NET Command Line Interface):
- 適用人群:跨平臺開發者、CI/CD 自動化用戶、偏好命令行者;
- 優點:
- 跨平臺支持(Windows、macOS、Linux);
- 易于集成到構建腳本、CI 流程中;
- 更貼近現代 .NET 開發流程。
- 缺點:
- 需要熟悉命令格式;
- 在多項目結構中需手動指定項目路徑。
📌 如果你使用 VS Code、Rider 或進行持續集成部署,首選 CLI。
總結一句話推薦:
- PM 面向 Visual Studio 快速開發場景,CLI 更適合跨平臺與自動化流程。
根據你的開發環境和團隊協作方式選擇最合適的方式即可。