人大金仓优点

人大金仓是国产最主流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. echarts去除坐标轴上的x和y轴

    通过 show:false控制手否显示 <!DOCTYPE html> <html lang="en"> <head> <meta cha ...

  2. echarts给每个柱状图配置不同的颜色

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. 【VictoriaMetrics的vmbackupmanager】这个一年卖 2 万美元的功能,我做出来了

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 1.背景 在可观测领域的 metrics 解决方案中,Vi ...

  4. Gin 响应方式

    响应 1. 字符串方式 r.GET("/user/save", func(ctx *gin.Context) { ctx.String(http.StatusOK, "t ...

  5. 【文件】C语言文件操作及其使用总结篇【初学者保姆级别福利】

    [文件]C语言文件操作及其使用总结篇[初学者保姆级别福利] 一篇博客学好动态内存的管理和使用 这篇博客干货满满,建议收藏再看哦!! 求个赞求个赞求个赞求个赞 谢谢 先赞后看好习惯 打字不容易,这都是很 ...

  6. 19c ADG Switchover 切换测试

    背景: 环境未配置DG Broker,手工切换ADG,19c也要比11g时代的切换更简单. 使用自己的测试环境,具体可参见: 单实例Primary快速搭建Standby RAC参考手册(19.16 A ...

  7. [Ngbatis源码学习][Spring] Spring 的资源管理 ResourceLoader

    在学习Ngbatis的源码时,看到了有关xml文件的加载,涉及到了资源的加载,对相关知识进行总结与整理. 1. 相关类 Resource AbstractResource ResourceLoader ...

  8. 浅谈高维FWT

    概述 快速沃尔什变换,可以用来处理有关异或卷积的问题. 而异或运算,也就是二进制下的不进位加法运算,我们考虑能否将其拓展到高维. 也就是,在 \(k\) 进制下的不进位加法卷积. 对于具体的某一位,我 ...

  9. NC22600 Rinne Loves Dynamic Graph

    题目链接 题目 题目描述 Rinne 学到了一个新的奇妙的东西叫做动态图,这里的动态图的定义是边权可以随着操作而变动的图. 当我们在这个图上经过一条边的时候,这个图上所有边的边权都会发生变动. 定义变 ...

  10. CF-928(已更新:B C E)

    CF-928 排名四千多,目前为止排名最高的一场~ E题我赛时基本上是猜的结论(但是也推了快一小时才想到有这个可能性),因此目前只能放个码在这(⊙﹏⊙) D的话问了学长思路,正在补了0-^-0 --但 ...