SqlSugar在.net中使用达梦数据库兼容做到了非常好,稳定5年了,已经过数年的迭代
SqlSugarCore
分为大写和驼峰表2种模式,默认为大写表模式
表名 STUDENT 字段 ID NAME ,直接用就行了SqlSugar不需要设置
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { DbType = DbType.Dm, ConnectionString ="Server=localhost; User Id=SYSDBA; PWD=SYSDBA;DATABASE=新DB" IsAutoCloseConnection = true }); //自动生成下划线看PostgreSQL文档用法差不多
需要配置禁用自动转大写
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { DbType = DbType.Dm, ConnectionString ="Server=localhost; User Id=SYSDBA; PWD=SYSDBA;DATABASE=新DB", IsAutoCloseConnection = true, MoreSettings=new ConnMoreSettings() { IsAutoToUpper=false //禁用自动转成大写表 5.1.3.41-preview04 } }); //注意:请升级到 5.1.3.41-preview04 以上版本
更接近Oracle,更偏向自主研发,对开发人员友好度不如金仓
至于其它国产数据库基本上都和PgSql 99.9%一样,建议你们还是用人大金仓比较省心
老版本 :PORT=5236;DATABASE=DAMENG;HOST=localhost;PASSWORD=SYSDBA;USER ID=SYSDBA
新版本: Server=localhost; User Id=SYSDBA; PWD=SYSDBA;DATABASE=新DB
带Schema 比如果需要 xxx.表名
:Server=153.101.101:5236;User Id=SYSDBA;PWD=123456;SCHEMA=myshcema;DATABASE=DAMENG
Docker安装的用户如果照抄官网安装会装成mysql模式,这样导致ORACLE分页无效
需要添加下面配置
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { DbType = DbType.Dm, IsAutoCloseConnection = true, ConnectionString = Config.ConnectionString, MoreSettings=new ConnMoreSettings() { //SqlSugarCore 5.1.4.157-preview09+版本支持 DatabaseModel=SqlSugar.DbType.MySql //启用达梦mysql模式分页的兼容 } });
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = "Server=.xxxxx",//连接符字串 DbType = DbType.Dm, //数据库类型 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.4.90-preview10 以上版本
//连接字符串指定一下SCHEMA和=之间不要有空格 Server=153.101.199.83:5236;User Id=SYSDBA;PWD=123456;SCHEMA=myshcema;DATABASE=DAMENG
请升级到:5.1.4.92及以上版本
[SugarColumn(SqlParameterDbType =typeof(NClobPropertyConvert) )] public string Name { get; set; } //这个类型存在坑看下面
注意:clob (longtext)驱动BUG:
部分用户出插入空白,下面是解决方案
升级驱动:SqlSugarCore.Dm 1.3.0+
连接字符串配置
varchar36ToGuid 表示是否将数据库 varchar(36)列类型返回.net Guid 类型。
TRUE 表示返回.net Guid 类型;
FALSE 表示返回.net string 类型;缺省为 TRUE
程序启动时设置最小线程数
//设置最小线程池为 250 用户性能有大大提或 ThreadPool.SetMinThreads
无法找到方法Dm.Comand.DmparameterCollection.get_Parameters
升级sqlsugar
NUGET 独立安装 SqlSugarCore.Dm 最新版本
参数的顺序要一样
https://www.donet5.com/ask/9/26555
Docker安装的用户如果照抄官网安装会装成mysql模式,这样导致ORACLE分页无效
需要添加下面配置
SqlSugarClient db = new SqlSugarClient(new ConnectionConfig() { DbType = DbType.Dm, IsAutoCloseConnection = true, ConnectionString = Config.ConnectionString, MoreSettings=new ConnMoreSettings() { //SqlSugarCore 5.1.4.157-preview09+版本支持 DatabaseModel=SqlSugar.DbType.MySql //启用达梦mysql模式分页的兼容 } });
2016 © donet5.comApache Licence 2.0