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;SCHEMA=myshcema"
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.199-preview30及以上
db.DbMaintenance.CreateDatabase();//达梦只支持创建schema,数据库需要存在
请升级到: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