-
從現有資料庫建立模型: 使用Entity Framework Core的Scaffold-DbContext命令,可以從資料庫生成實體模型及DBContext。此操作會根據資料庫中的表和檢視生成對應的領域模型和配置程式碼。命令如下:
shell
Scaffold-DbContext "YourConnectionString" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Force
其中,“YourConnectionString”是資料庫連線字串,"Models"是你希望生成的類放置的目錄。使用-Force
引數可以在必要時覆蓋現有檔案。
-
儲存過程對映: 對於儲存過程,EF Core不會自動生成C#方法,你需要手動新增呼叫儲存過程的程式碼。使用DBContext的
FromSqlRaw
或ExecuteSqlRaw
方法來執行儲存過程,並將結果對映到領域模型實體上,例如:
csharp
var result = context.YourEntityModel.FromSqlRaw("EXEC YourStoredProcedure @param1, @param2", parameters).ToList();
這樣,雖然不能自動同步,但是透過Scaffold-DbContext來輔助生成模型,加上手動新增儲存過程的呼叫方法,還是可以將資料庫的變更較為方便地同步到專案程式碼中的。
要記住的重點是,如果你是在Code First方式下工作,原則上應該儘量避免直接在資料庫端進行結構變更,而是應透過更改領域模型和使用EF Core遷移(Migrations)來同步資料庫結構,這有助於保持程式碼與資料庫結構的一致性和追蹤性。直接在資料庫中進行變更並反向工程到程式碼中應視為特殊情況下的臨時做法。
ABP vNext框架社群確實開發了一些實體類程式碼生成工具,幫你從資料庫生成領域模型的程式碼。下面是幾個高讚的GitHub倉庫,其中可能包含一些你會感興趣的工具:
-
-
描述: ABP vNext+vue3(vben)+code generator
-
星星數量: 30
-
這個倉庫提供了與Vue3整合的ABP vNext專案的程式碼生成器。
-
-
-
描述: Abp Vnext Basic Code Generator
-
星星數量: 29
-
這個工具提供了基本的ABP vNext程式碼生成能力,可以幫你生成實體類程式碼等。
-
-
-
描述: Visual 2017 extension for abp vnext code generator archetype
-
星星數量: 24
-
如果你使用的是Visual Studio 2017,這個擴充套件可能正合你意,它是為ABP vNext編寫的程式碼生成器。
-