EF Core Power Tools 介紹
TLDR
- EF Core Power Tools 提供圖形化介面進行反向工程,解決原生指令複雜與客製化困難的問題。
- 透過
efpt.config.json統一設定檔,確保團隊開發環境一致。 - 支援
DateOnly與TimeOnly型別對應,避免 SQL Server 的date/time被誤對應為DateTime。 - 延伸模組版本與 EF Core 及 .NET 版本高度相依,多專案維護時可能需安裝不同版本的 Visual Studio。
- 若需支援 PostgreSQL 或 SQLite,可安裝 EF Core Power Pack 擴充套件。
EF Core Power Tools 介紹
在 Entity Framework Core 中,官方預設僅提供 Code First 開發方式。若要實現 Database First 的效果,通常需透過反向工程(Reverse Engineering)產生程式碼,但原生指令操作繁瑣且客製化彈性低。EF Core Power Tools 是官方推薦的 Visual Studio 延伸模組,能有效解決上述問題。
主要功能與優勢
- UI 介面操作:提供圖形化介面執行反向工程,降低手動輸入指令造成的錯誤率。
- 程式碼客製化:支援透過 T4 範本或 Handlebars 進行進階程式碼客製化。
- 設定檔管理:所有設定儲存於
efpt.config.json,確保團隊成員使用相同的反向工程設定。 - 型別對應優化:支援
DateOnly和TimeOnly對應。在進階設定中勾選「Map DateOnly and TimeOnly」後,可正確對應 SQL Server 的date與time型別,避免誤用DateTime。
版本相依性限制
什麼情況下會遇到這個問題:當開發環境同時維護橫跨 .NET Core 3.1 到 .NET 8 的多個專案時。
由於 EF Core Power Tools 的版本與 Entity Framework Core 版本高度相依,而 EF Core 又與 .NET 版本綁定,導致不同專案可能需要對應不同版本的延伸模組。例如:
- EF Core Power Tools 2.5.1429:最後支援 Entity Framework Core 3.1 的版本,不支援 EF Core 8。
- EF Core Power Tools 2.6.698:最後支援 Entity Framework Core 7 的版本。
建議做法:若需同時維護多個跨度較大的專案,可能需要安裝不同版本的 Visual Studio(如正式版與 Preview 版)來分別安裝對應的延伸模組。
EF Core Power Pack
解決方案
什麼情況下會遇到這個問題:當開發者需要針對 SQL Server 以外的資料庫(如 PostgreSQL 或 SQLite)進行反向工程時。
由於 EF Core Power Tools 原生主要支援 SQL Server,作者另外開發了 EF Core Power Pack 延伸模組。
安裝與使用
安裝 EF Core Power Pack 後,系統會自動整合以下擴充套件:
- VisualStudio.Data.Sqlite
- Npgsql PostgreSQL Integration
使用方式如下:
- 在 Visual Studio 中進行「新增資料庫連線」。
- 點擊資料連線視窗中的「變更(C)」按鈕。
- 在清單中選擇新增的「PostgreSQL」或「SQLite」資料庫類型即可進行後續操作。
異動歷程
- 2025-07-07 初版文件建立。
