人大金仓优点

人大金仓是国产最主流ORM之一

具有和PgSql一样强悍的性能,同时人大金仓支持了四种数据库模式 :

Oracle、PgSql、MySql和SqlServer ,假如你们系统有多种数据库开发

有国产化要求,那么你们切换到人大金仓就会很方便了

Nuget安装ORM

SqSugar和人大金仓官方有深度整合,SqlSugar在人大金仓的支持上是一流的,并且支持Oracle模式的存储过程等。

并且可以有官方的支持,经过多年与金仓团队合作可以说SqlSugar是.NET下人大金仓整合最好的ORM,同时支持了

R3、 R6 Oracle模式、R6PgSql模式 、R6MySql模式和R6SqlServer模式

SqlSugarCore
SqlSugarCore.Kdbndp

数据库版本配置

每个版本都有些注意点,有些需要提定一下模式,有些需要升级一下nuget

R3 老版本

直接安装 和使用

R6:Oracle模式(推荐默认 )

支持存储过程 和 PostgreSQL语法 (推荐)

R6:MySql模式 ( 需要独立最新 )

SqlSugarCore.Kdbndp 到最新版本

R6:PostgreSQL模式(需配置)

配置一下pg模式如下

//SqlSugarCore 5.1.4.143-preview08 支持
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
{
DbType = DbType.Kdbndp,
ConnectionString ="Server=127.0.0.1;Port=54321;UID=SYSTEM;PWD=system;database=SQLSUGAR4XTEST1",
IsAutoCloseConnection = true,
MoreSettings=new ConnMoreSettings()
{
//SqlSugarCore 5.1.4.143
DataBaseModel= DbType.PostgreSQL//配置PG模式主要是兼容系统表差异
}
})

R6:SqlServer模式(需配置)

如何要使用CodeFirst需要配置

SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
{
DbType = DbType.Kdbndp,
ConnectionString ="Server=127.0.0.1;Port=54321;UID=SYSTEM;PWD=system;database=SQLSUGAR4XTEST1",
IsAutoCloseConnection = true,
MoreSettings=new ConnMoreSettings()
{
//SqlSugarCore 5.1.4.144-preview16+ 支持
DataBaseModel= DbType.SqlServer//配置SqlServer模式主要是兼容CodeFirst报错
}
})

已知问题:

1、Date类型不支持,只支持DateTime类型 金仓官方在开发了

2、it.时间.Date==时间.Date 要改成 it.时间.ToString("yyyy-MM-dd")==时间.ToString("yyyy-MM-dd")

3、表模式

2种模式用法小有区别,推荐规范表

1. 规范表: 自动转大写

2. 驼峰表: 不自动转大写

规范(自动转大写)

表名 STUDENT  字段 ID  NAME   ,直接用就行了SqlSugar不需要设置

 SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
{
DbType = DbType.Kdbndp,
ConnectionString ="Server=127.0.0.1;Port=54321;UID=SYSTEM;PWD=system;database=SQLSUGAR4XTEST1",
IsAutoCloseConnection = true
});
//自动生成下划线看PostgreSQL文档用法差不多

不规范(不转换大写)

需要配置禁用转大写

 SqlSugarClient db = new SqlSugarClient(new ConnectionConfig()
{
DbType = DbType.Kdbndp,
ConnectionString = "Server=127.0.0.1;Port=54321;UID=SYSTEM;PWD=system;database=SQLSUGAR4XTEST1",
IsAutoCloseConnection = true,
MoreSettings=new ConnMoreSettings() {
IsAutoToUpper=false //禁用自动转成大写表 5.1.3.41-preview08
}
});
//注意:请升级到 5.1.3.41-preview08 以上版本  

5、操作人大金仓数据库

using SqlSugar;

SqlSugarClient Db = new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = "datasource=demo.db",
DbType = DbType.Kdbndp,//MySql和SqlServer模式看上面需要配置DatabaseModel
IsAutoCloseConnection = true
}); //建库
Db.DbMaintenance.CreateDatabase();//达梦和Oracle不支持建库 //建表(看文档迁移)
Db.CodeFirst.InitTables<Student>(); //所有库都支持 //查询表的所有
var list = Db.Queryable<Student>().ToList(); //插入
Db.Insertable(new Student() { SchoolId = 1, Name = "jack" }).ExecuteCommand(); //更新
Db.Updateable(new Student() { Id = 1, SchoolId = 2, Name = "jack2" }).ExecuteCommand(); //删除
Db.Deleteable<Student>().Where(it => it.Id == 1).ExecuteCommand(); //实体与数据库结构一样
public class Student
{
//数据是自增需要加上IsIdentity
//数据库是主键需要加上IsPrimaryKey
//注意:要完全和数据库一致2个属性
[SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
public int Id { get; set; }
public int? SchoolId { get; set; }
public string? Name { get; set; }
}

  

6、架构支持 schema(非Public)

连接字符串上加上 searchpath=架构名 ,可以支持多架构

7、字符串空判段问题

8、.NET Framework用户dll

需要引用的dll ,官方定制比外面找的dll更加强大  ( .NET Core用户直接安装SqlSugarCore就可以了)

Kdbndp_dll.rar   framework用户用R6Oracle或者R3 只有.NET Core支持了四种模式

9、常见问题

9.1 string ==""无效

oracle模式下没空只有null, 多库用户可以配置一下off参数

ora_input_emptystr_isnull = off  这个参数放到,kingbase.conf的结尾就可以。

C# 操作国产数据库之【 人大金仓 】之四大模式的更多相关文章

  1. 教你10分钟对接人大金仓EF Core 6.x

    前言 目前.NET Core中据我了解到除了官方的EF Core外,还用的比较多的ORM框架(恕我孤陋寡闻哈,可能还有别的)有FreeSql.SqlSugar(排名不分先后).FreeSql和SqlS ...

  2. 通过ODBC接口访问人大金仓数据库

      国产化软件和国产化芯片的窘境一样,一方面市场已经存在性能优越的同类软件,成本很低,但小众的国产化软件不仅需要高价买入版权,并且软件开发维护成本高:另一方面,国产软件目前普遍难用,性能不稳定,Bug ...

  3. DBeaver连接达梦|虚谷|人大金仓等国产数据库

    前言 工作中有些项目可能会接触到「达梦.虚谷.人大金仓」等国产数据库,但通常这些数据库自带的连接工具使用并不方便,所以这篇文章记录一下 DBeaver 连接国产数据库的通用模版,下文以达梦为例(其他国 ...

  4. QT 之 ODBC连接人大金仓数据库

    QT 之 使用 ODBC 驱动连接人大金仓数据库 获取数据库驱动和依赖动态库 此操作可在人大金仓官网下载与系统匹配的接口动态库,或者从架构数据库的源码中获取驱动和依赖动态库 分别为: 驱动动态库:kd ...

  5. 通过jmeter连接人大金仓数据库

    某项目用的人大金仓数据库,做性能测试,需要用jmeter来连接数据库处理一批数据.jmeter连接人大金仓,做个记录. 1. 概要 在"配置元件"中添加"JDBC Con ...

  6. 人大金仓KCI

    #include "bin/libkci.h" static void exit_nicely(KCIConnection *conn) { KCIConnectionDestor ...

  7. flowable如何适配国产数据库达梦

    前言 flowable6.4.1流程引擎官方支持的数据库有:MySQL.hsql.Oracle.DB2 .postgres.SQL Server.H2.对于其他类型的数据库如何支持,尤其是国产数据库的 ...

  8. Camunda如何适配国产数据库达梦

    前言 camunda流程引擎官方支持的数据库有:MySQL .MariaDB .Oracle .DB2 .PostgreSQL .SQL Server.H2.对于其他类型的数据库如何支持,尤其是国产数 ...

  9. .NET CORE 下如何使用国产数据库进行 开发

    主流国产数据库 随着贸易战的升级 ,自主研发和知识产权也是一个大的趋势,达梦和人大金仓是国产数据库中比较主流的 1.达梦数据库 更接近Oracle,更偏向自主研发,对开发人员友好度不如金仓 达梦公司在 ...

  10. 金仓Kingbase数据库网页数据维护分析工具

    金仓Kingbase是优秀的国产数据库产品,在能源,政务,国防等领域广泛使用, 现在TreeSoft数据库管理系统已支持Kingbase了,直接在浏览器中就可以操作查看Kingbase数据了,十分方便 ...

随机推荐

  1. SqlSugar联表查询

    Join用法 语法糖1.2和3 在Where OrderBy GroupBy Select用法都一样的,他们区别就在JOIN的方式不一样,其它都一样 语法糖1 优点:好理解,5个表以内的联表非常爽,支 ...

  2. 3.2 Windows驱动开发:内核CR3切换读写内存

    CR3是一种控制寄存器,它是CPU中的一个专用寄存器,用于存储当前进程的页目录表的物理地址.在x86体系结构中,虚拟地址的翻译过程需要借助页表来完成.页表是由页目录表和页表组成的,页目录表存储了页表的 ...

  3. Python 实现指定窗口置顶激活

    通过Python实现对特定窗口的置顶操作以及对特定窗体发送按键,这里需要安装一个第三方pip包,执行命令pywin32安装好以后,我们运行试试. 第一个案例,遍历所有句柄,然后对特定窗口进行最大化或最 ...

  4. 在K8S中,PV和PVC是如何关联?

    在Kubernetes(简称K8s)中,PersistentVolume (PV) 和 PersistentVolumeClaim (PVC) 是实现存储持久化的关键组件.它们之间的关联是用来动态或静 ...

  5. Cygwin,在windows中使用linux命令

    习惯了 linux 命令的快捷操作,使用 winodws 的 shell 感觉效率非常低下,于是开始搜寻工具支持. 刚开始搜到的是 GnuWin32,但是它已经停止更新维护了,于是找到了 Cygwin ...

  6. Springboot创建项目、docker安装mysql及mybatis-plus调试

    Springboot创建项目及测试 1️⃣ idea构建springboot项目 2️⃣ 测试类 hello 1. 代码 RestController是ResponseBody + controlle ...

  7. Linux进程通信-POSIX IPC

    前言 Linux POSIX IPC的可移植性是不如System V IPC的,但是我们只用Linux,并且内核版本高于2.6.6的话就不存在该问题了.也因为POSIX IPC出现的比较晚,借鉴了sy ...

  8. Oracle ADG + Keepalived 切换演练

    客户的一套生产环境采用的架构是Oracle ADG + Keepalived,近期需要进行切换演练,要求我这边保障.ADG本身切换倒没啥可说的,但引入keepalived软件,就需要提前研究下这个架构 ...

  9. NC16591 [NOIP2010]关押罪犯

    题目链接 题目 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用"怨气 ...

  10. low-code 低代码平台 java 代码自动一键生成工具

    low-code low-code 是一款为 java 打造的低代码平台. 开源地址:https://github.com/houbb/low-code 特性 支持基本的增删改查 支持枚举值处理 支持 ...