SqlSugar和人大金仓官方有深度整合,SqlSugar在人大金仓是最好的,不光光C#最好,所有语言中是最好的,并且支持Oracle模式的存储过程和游标等。
并且可以有官方的支持,.NET下人大金仓整合最好的ORM
SqlSugarCore //SqlServer模式需要独立安装最新版本驱动 //SqlSugarCore.Kdbndp 9.3.6.719
每个版本都有些注意点,有些需要提定一下模式,有些需要升级一下nuget
//可以查看安装的模式 show database_mode; //查看版本号 SELECT version();
R3用法如下
SqlSugarClient Db = new SqlSugarClient(new ConnectionConfig() { DbType = DbType.Kdbndp, ConnectionString = "Server=127.0.0.1;Port=54321;UID=system;PWD=123;database=test", InitKeyType = InitKeyType.Attribute, IsAutoCloseConnection = true, }, db => { db.Aop.OnExecutingChangeSql = (s, p) => { s = s.Replace("pg_catalog.", "");//R3比较老和高版本有些函数冲突需要加替换 return new KeyValuePair<string, SugarParameter[]>(s, p); }; });
直接安装 和使用 ,兼容PG语法(推荐 )
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 })
升级到 5.1.4.152+
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.152 + DatabaseModel= DbType.MySql//配置MySql模式主要是兼容系统表差异 } })
配置一下pg模式如下
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.146 + DatabaseModel= DbType.PostgreSQL//配置PG模式主要是兼容系统表差异 } })
现在还在内测中
24年5月以后的安装文需要升级到 SqlSugar 5.1.4.161+
24年5月之前的数据库用 5.1.4.160及以下版本
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.146 + DatabaseModel= DbType.SqlServer//配置SqlServer模式主要是兼容CodeFirst报错 //该模式下已知问题: //SqlServer模式下不支持Date类型请使用DateTime类型 //时间.Date==时间.Date要改成it.时间.ToString("yyyy-MM-dd")==时间.ToString("yyyy-MM-dd") } }) //SqlServer模式需要独立安装最新版本驱动 //SqlSugarCore.Kdbndp 9.3.6.719
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 以上版本
基本上和PgSql一模一样更贴近开发功能也继承了pgsql所有功能,对开发人员比较友好
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = "Server=.xxxxx",//连接符字串 DbType = DbType.Kdbndp, //数据库类型 IsAutoCloseConnection = true //不设成true要手动close });
查询
db.Queryable<Student>().ToList()//查询所有 db.Queryable<Student>().Where(it=>it.Id==1).ToList()//根据条件查询 //分页 int pageIndex = 1; // pageindex是从1开始的不是从零开始的 int pageSize = 20; int totalCount=0; //单表分页 var page = db.Queryable<Student>().ToPageList(pageIndex, pageSize, ref totalCount);
插入
//返回插入行数 db.Insertable(insertObj).ExecuteCommand(); //都是参数化实现 //插入返回自增列 db.Insertable(insertObj).ExecuteReturnIdentity(); //返回雪花ID 看文档3.1具体用法(在最底部) long id= db.Insertable(实体).ExecuteReturnSnowflakeId();
更多用法看左边菜单
5.1.3.35-preview19 +
连接字符串上加上 searchpath=架构名 ,可以支持非public
需要引用的dll ,官方定制比外面找的dll更加强大 ( .NET Core用户直接安装SqlSugarCore就可以了)
show database_mode; //查看版本号 SELECT version();
升级:SqlSugarCore 5.1.4.149+
//1.字符串加上 ;CursorAsDataRead=True //2.具体用法 var p = new SugarParameter("@outcursor", null) { IsRefCursor = true, Direction = System.Data.ParameterDirection.Output }; db.Ado.UseStoredProcedure().ExecuteCommand("cs_20240312",p ); Console.WriteLine(p.Value);
text[] int4[] 这种组合类型
//实体 SugarColums(IsArray=true) //Sql参数 new SugarParameter("Names",array){ IsArray=true }
json或者jsonb
//实体 SugarColums(IsJson=true) //Sql参数 new SugarParameter("Names",json){ IsJson=true }
独立安装最新预览版本的 SqlSugarCore.Kdbndp
SqlSugraCore 5.1.4.160+
千万不要用Sys__Config这个表名,和系统表冲突了 , 避免 sys_和 pg_ 开头
千万不要用Sys_user这个表名,和系统表冲突了 , 避免 sys_和 pg_ 开头
oracle模式下没空只有null, 多库用户可以配置一下off参数
ora_input_emptystr_isnull = off 这个参数放到,kingbase.conf的结尾就可以。
2016 © donet5.comApache Licence 2.0