EF Core助力信创国产数据库

发布时间 2023-12-20 08:33:22作者: Jeffcky

前言

国产数据库作为国产化替代的重要环节,在我国信创产业政策的指引下实现加速发展,我们国产数据库已进入百花齐放的快速发展期,相信接触到涉及到政府类等项目的童鞋尤为了解,与此同时我们有一部分也在使用各种开源的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.KingbaseEShttps://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.若丢一堆与问题无关的代码过来,还需要我来搭建各种环境,抽丝剥茧,抱歉,我会不予理会,当然,要是按小时付费也不是不可以 ,即便是搭建一个星期我也很乐意,这是我莫大的荣幸