C# 操作国产数据库之【 人大金仓 】之四大模式
人大金仓优点
人大金仓是国产最主流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# 操作国产数据库之【 人大金仓 】之四大模式的更多相关文章
- 教你10分钟对接人大金仓EF Core 6.x
前言 目前.NET Core中据我了解到除了官方的EF Core外,还用的比较多的ORM框架(恕我孤陋寡闻哈,可能还有别的)有FreeSql.SqlSugar(排名不分先后).FreeSql和SqlS ...
- 通过ODBC接口访问人大金仓数据库
国产化软件和国产化芯片的窘境一样,一方面市场已经存在性能优越的同类软件,成本很低,但小众的国产化软件不仅需要高价买入版权,并且软件开发维护成本高:另一方面,国产软件目前普遍难用,性能不稳定,Bug ...
- DBeaver连接达梦|虚谷|人大金仓等国产数据库
前言 工作中有些项目可能会接触到「达梦.虚谷.人大金仓」等国产数据库,但通常这些数据库自带的连接工具使用并不方便,所以这篇文章记录一下 DBeaver 连接国产数据库的通用模版,下文以达梦为例(其他国 ...
- QT 之 ODBC连接人大金仓数据库
QT 之 使用 ODBC 驱动连接人大金仓数据库 获取数据库驱动和依赖动态库 此操作可在人大金仓官网下载与系统匹配的接口动态库,或者从架构数据库的源码中获取驱动和依赖动态库 分别为: 驱动动态库:kd ...
- 通过jmeter连接人大金仓数据库
某项目用的人大金仓数据库,做性能测试,需要用jmeter来连接数据库处理一批数据.jmeter连接人大金仓,做个记录. 1. 概要 在"配置元件"中添加"JDBC Con ...
- 人大金仓KCI
#include "bin/libkci.h" static void exit_nicely(KCIConnection *conn) { KCIConnectionDestor ...
- flowable如何适配国产数据库达梦
前言 flowable6.4.1流程引擎官方支持的数据库有:MySQL.hsql.Oracle.DB2 .postgres.SQL Server.H2.对于其他类型的数据库如何支持,尤其是国产数据库的 ...
- Camunda如何适配国产数据库达梦
前言 camunda流程引擎官方支持的数据库有:MySQL .MariaDB .Oracle .DB2 .PostgreSQL .SQL Server.H2.对于其他类型的数据库如何支持,尤其是国产数 ...
- .NET CORE 下如何使用国产数据库进行 开发
主流国产数据库 随着贸易战的升级 ,自主研发和知识产权也是一个大的趋势,达梦和人大金仓是国产数据库中比较主流的 1.达梦数据库 更接近Oracle,更偏向自主研发,对开发人员友好度不如金仓 达梦公司在 ...
- 金仓Kingbase数据库网页数据维护分析工具
金仓Kingbase是优秀的国产数据库产品,在能源,政务,国防等领域广泛使用, 现在TreeSoft数据库管理系统已支持Kingbase了,直接在浏览器中就可以操作查看Kingbase数据了,十分方便 ...
随机推荐
- 【解决了一个小问题】terraform apply 的时候出现访问 localhost 出错
作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 有这样一段 terraform 的部署脚本: provid ...
- windows10卸载小娜
适用于2004版本往后的 win+x如图 输入如下代码 Get-AppxPackage-allusersMicrosoft.549981C3F5F10|Remove-AppxPackage 运行结束后 ...
- 从零开始配置 vim(14)——目录管理插件
我们在介绍vim目录管理的时候提到 vim自带一个 叫做 netrw的工具来管理目录.但是它自身的功能有限,而且样式也丑.今天我们将使用其他强大的插件来替代 netrw,增强目录管理功能 nvim-t ...
- 3.0 熟悉IDAPro静态反汇编器
IDA Pro 是一种功能强大且灵活的反汇编工具,可以在许多领域中发挥作用,例如漏洞研究.逆向工程.安全审计和软件开发等,被许多安全专家和软件开发者用于逆向工程和分析二进制代码.它支持大量的二进制文件 ...
- Pdfium.Net.Free 一个免费的Pdfium的 .net包装器--PDF预览器框选
项目地址: Pdfium.Net:https://github.com/1000374/Pdfium.Net PdfiumViewer:https://github.com/1000374/Pdfiu ...
- 股价暴跌11% 但是Intel的“王者归来”时刻不远了
当地时间1月25日美国股市盘后,处理器大厂Intel公布了2023财年第四季(截至2023年12月30日为止)及2023财年全年的财报,虽然四季度业绩整体优于分析师的预期,但是2024年第一季的业绩指 ...
- 微软Bing正面对阵谷歌!竞标争夺Firefox默认搜索引擎
在今早的谷歌I/O大会上,谷歌带来了全新的PaLM 2人工智能语言模型,并将用该模型升级Bard对话机器人以及谷歌搜索. 但面对来势汹汹的谷歌,微软似乎并不打算退却. 根据The Informatio ...
- SpringBoot + LiteFlow:轻松应对复杂业务逻辑,简直不要太香!
LiteFlow简介 LiteFlow是什么? LiteFlow是一款专注于逻辑驱动流程编排的轻量级框架,它以组件化方式快速构建和执行业务流程,有效解耦复杂业务逻辑.通过支持热加载规则配置,开发者能够 ...
- 程序语言多态(overide) - delphi 版本
程序语言多态 - delphi 版本 前言: 所有程序语言都差不多,特写一篇 delphi 版本 的多态:其它语言 类同. 都是一些别人规定的语法而已,别人用一个下午设计一门语言,愚弄天下程序员一生: ...
- Java基础综合测试
Java版基础练习题: 输入练习: [问题描述] 任务很简单: 给定若干个整数,请编程输出它们的和. [输入形式] 输入包含多组测试用例. 每组测试数据首先是一个正整数N,表示本组数据有N个整数. 请 ...