背景
正在開發一個平台項目,既然是平台自然是要足夠通用,從數據庫的角度說就是要兼容足夠多的主流數據庫。但是平台又不想使用現有的ORM庫,一是希望ORM功能在平台里足夠貼合平台功能,二是希望ORM足夠輕量級,因此決定自行開發一套ORM庫,首先ORM需要一套最終執行數據庫命令落地的操作類,並直接兼容多數據庫。
目的
自己動手開發既滿足了平台對於數據庫操作的剛需,同時熟悉.net core的技術。
另一方面,該庫可被獨立使用,無需ORM的包裝;使用該庫可以將數據庫操作和具體數據庫類型隔離,對於未來進行數據庫類型切換來說幾乎是可以說零工作量。
思路
實現一套數據庫操作類,簡單來說就是數據庫的增、刪、改、查,以及事務操作等基本功能,基於輕量級的要求,平台不需要或小概率需要的數據庫操作將不被支持。
基於以上想法,決定采用DbProvider機制實現,做最簡單的封裝,具體邏輯如下:
1. 提供RegisterDbProvider方法增加新的數據庫類型支持
2. 通過AddDataSource方法增加數據庫連接
3. 提供ExecuteNonQuery、ExecuteScalar、ExecuteDataReader、GetTransaction、CommitTransaction、RollbackTransaction等方法執行數據庫相關操作和事務
實現
代碼實現比較簡單,這里不再貼出來了,有需要的同學直接移步github,netcoreDbHelper