開發 .NET 應用程式在處理資料時,都會建立模型類別(Model),特別像是 MVC 的專案,而當資料要儲存到資料庫時,資料庫需要產生對映 Schema 來儲存。這時千萬別馬上開始,先瞭解幾個專有名詞 code first、model first、database first,然後,再利用自動生成工具來減少你的工作,工具像是 PMC Tool - Migrations、POCO Entity …。
不過這些工具,個人覺得在 mac 上,使用起來不是很順手,個人較習慣使用 CLI Tool 的方式,接下來用個實例說明反向工程,如何用 MySQL Schema 生成模型類別到專案中。
我所使用的環境:
- Mac
- Visual Studio Code
- dotnet core 3.0
- dotnet-ef
- Makefile
Installing
請先建立好你的 dotnet project,然後確認已安裝:
- CLI Tool
安裝 dotnet-ef 工具,用來作模型移轉。1
dotnet tool install --global dotnet-ef
- Database Provider
我所使用的是 MySQL,需安裝 MySql 資料庫提供者。1
dotnet add package Pomelo.EntityFrameworkCore.MySql
- EntityFrameworkCore.Design
如果你是使用 .NET Core 2.1 以上的版本,.NET Core SDK 已包含 Design,可跳過這一步。1
dotnet add package Microsoft.EntityFrameworkCore.Design
Scaffold
當資料庫和工具準備完成,透過 dbcontext scaffold 指令來進行反向工程,它會讀取資料庫的資訊,像 tables, columns, constraints, and indexes …,然後生成 DbContext.cs 和 Models.cs。
|
|
Script
最後,建立 makefile 腳本持續更新模型
|
|