框架設計之初是不准備支持第三方數據庫的,但最近幾個朋友都提到需要將舊的基於傳統Sql數據庫的應用遷移到框架內,主要是考慮到一方面目前框架內置的分布式數據庫尚未完善,另一方面是希望能逐步迭代舊應用替換傳統數據庫。因此作者還是決定支持第三方數據庫,下面介紹如何集成第三方數據庫,並將實體模型映射存儲至其中。
一、創建DataStore
DataStore主要保存數據庫的配置(連接)信息,通過IDE主菜單->DataStore->NewDataStore創建,創建后需要設置相應的連接信息(如下圖所示),另如果是集群部署必須確保集群每一個節點都能正常連接到數據庫。
目前僅實現了Postgresql的支持
二、創建EntityModel
現在新建EntityModel時必須選擇對應的存儲源,"Default"是框架內置的數據庫,其他名稱則是對應的第三方數據庫。創建完實體模型后打開設計器,在"Members"面板點擊"Add"按鈕可添加實體成員(對應數據庫表字段),如下圖所示:
根據不同的存儲源,實體模型設計器的選項面板會呈現不同的設置選項,Sql數據庫可設置主鍵及索引,如下圖所示:
設置完並"保存"及"發布"后,服務端會自動連接數據庫創建相應的表結構。另外DbFirst模式尚未實現,實現后可反向從現有數據庫生成實體模型。
三、創建ServiceModel測試ORM
上述操作完成后創建測試用的服務模型,如下圖所示編寫兩個服務方法,一個簡單並發插入實體,一個分頁查詢數據。
鼠標定位相應的服務方法后點擊"Invoke"按鈕可調用服務方法進行測試,簡單並發插入實體及簡單分頁查詢的結果分別如下圖所示:
服務模型Invoke與Debug的區別:
Invoke需要保存並發布后調用,使用Release選項編譯;
Debug不需要保存並發布,使用Debug選項編譯,服務端有相應的Debug進程處理調試過程。
四、本篇小結
第三方數據庫的支持目前只是搭了個架子,ORM部分的很多功能如更新、導航屬性、復雜查詢等都未實現,框架的前端工程及后端工程的源碼已經遷到gitlab上,暫采用贊助的方式開放,如果您對項目感興趣可通過下載GitHub上的運行時安裝測試,然后再決定是否加入贊助者來共同推進這個項目。另一邊碼代碼一邊碼文實屬不易,作者需要您的支持請您多多點贊推薦!