先前文章(利用 HIERARCHYID 紀錄資料庫樹狀關聯資料)中提到 EF Core3.1 還不支援 HIERARCHYID,ASP.Net Core 專案有需要用到 ORM 取用資料時可以先用 Dapper — 相當輕巧的 ORM 工具。
使用方式
0. 準備好 ASP.Net Core 的專案,範例使用 ASP.Net Core3.1。
1. 安裝 Dapper,指令:
Install-Package Dapper -Version 2.0.35
2. 安裝 Microsoft.SqlServer.Types (為了轉換資料庫中 HIERARCHYID 資料類型類型),指令:
Install-Package Microsoft.SqlServer.Types -Version 14.0.1016.290
3. 將以上範例改寫為 class:
HIERARCHYID 資料類型改為 SqlHierarchyId。
增加一個 SalesByDepartment class 作為回傳強型別資料。(非必要,但用 ORM 就是要享受強型別的好處嘛)
4. 建立 Dapper 使用的 Repository
ConnectionString 請自行調整。
執行結果:
完整範例可至 GitHub 下載。