前言
國產資料庫作為國產化替代的重要環節,在我國信創產業政策的指引下實現加速發展,我們國產資料庫已進入百花齊放的快速發展期,相信接觸到政府類等專案的童鞋尤為了解,與此同時我們有一部分也在使用各種開源的ORM都早已支援主流國產資料庫,我們也有一部分在使用官方EF Core但沒有對國產資料庫的統一的管理和支援,去年我寫過一篇如何使用EF Core適配支援人大金倉,既然如此,利用我工作空餘時間將其適配後開源出來,大家來共同添磚加瓦
人大金倉和華為高斯資料庫介紹
人大金倉和華為高斯資料庫底層都是基於PostgreSQL,關於各自之後基於資料庫本身增添的特性在此不做進一步的闡述,可自行去官網瞭解。這裡我所講的特性,僅僅陳述我們表列等基本特性,這也是我們進行增刪改查業務操作所需要用到的,根據我的瞭解,人大金倉在不斷適配PostgreSQL的新版本,最新應該是PostgreSQL 12.0,所以這樣一來對於新的人大金倉版本我們可能直接使用Npgsql即可使用,但對於老的版本可能又不行,當然PostgreSQL新版本上的新特性,人大金倉有些自然而然也就對應繼承了,比如主鍵自增長,在PostgreSQL 10.0新增,對應人大金倉本身對於列型別也做了對應的擴充等等。華為高斯資料庫底層一直停留在PostgreSQL 9.2.4,所以呢,PostgreSQL 10.0新增的主鍵自增長Identity就無法支援,只支援透過Squence建立,透過OpenGaussDB官網也可印證這一點。
支援人大金倉和華為高斯資料庫
在我當前淺薄認知下,信創國產資料庫人大金倉和高斯資料庫比較腰間突出,所以我已優先適配人大金倉 EF Core 6.x和華為高斯EF Core 8.0版本且已釋出至NuGet,開源地址為我們土生土長的.NET NCC社群:https://github.com/dotnetcore/EntityFrameworkCore.KingbaseES和https://github.com/dotnetcore/EntityFrameworkCore.GaussDB。具體使用方式請見README
後續計劃
接下來會支援高斯6.0/7.0、人大金倉7.0/8.0,至於釋出時間嘛,沒人提ISSUE則根據我個人的空擋時間而定,有需求的話則根據具體反饋做對應優先順序處理調整。我還是希望能有更多同仁參與進來,我指的是共同參與做貢獻,而不是多提ISSUE,畢竟我個人的時間和精力也有限,哈哈
關於ISSUE處理基本規範
順便提一嘴,有關問題可能需要復現,請允許我提前說一句:Guys, I'm going to need a concrete code sample which reproduces the issue, otherwise I'm not going to be able to investigate.若丟一堆與問題無關的程式碼過來,還需要我來搭建各種環境,抽絲剝繭,抱歉,我將不予理會,當然,要是按小時付費也不是不可以 ,即便是搭建一個星期我也很樂意,這是我莫大的榮幸