已经有大量用户成功完成了项目,sqlsugar针对GaussDB 做了多处理。
sqlsugar支持了2种连接方式
Npgsql方式和原生方式
如果功能要求不多需要成熟稳定用 Npgsql方式 (标题2)
如果需要用到大量GaussDB独有特性那么就用原生方式 (标题3)
优点:Npgsql 成熟稳定
缺点:无法使用Npgsql以外特性
用法和PGSQL一样 ,唯一区别 在连接字符串 后面加上No Reset On Close=true
PORT=5432;DATABASE=SqlSugar4xTest;HOST=localhost;PASSWORD=haosql;USER ID=postgres;No Reset On Close=true
Nuget安装:SqlSugarCore
var db=new SqlSugarClient(new ConnectionConfig() { //如果是OpenGauss需要DbType.OpenGauss DbType = SqlSugar.DbType.GaussDB , ConnectionString = Config.ConnectionString, IsAutoCloseConnection = true, //个别特殊的数据库需要禁用Nvarchar MoreSettings=new ConnMoreSettings(){ DisableNarvchar=true, } });
注意:在.NET中我们要修改一下加密方式才能使用
3个步骤一个不能少,依次按顺序操作
1.password_encryption_type=1 同时支持sha256和md5多重验证
2.重启服务
3.重新修改密码
详细说明: https://www.donet5.com/ask/9/21149
数据类型可以按下面的使用
GaussDB | C# |
numeric | decimal |
int2 | short |
int1 | byte |
int4 | int |
int8 | long |
boolean | boolean |
float4 | float |
float8 | double |
TEXT | 大文本 |
json | C#可序列化的对象 特性要加IsJson=true |
timestamp | DateTime |
date | DateTime |
time | TimeSpan |
uuid | Guid |
bytes/bytea 目前bytes是确定支持 | Byte[] |
searchpath=架构名 ,注意不要有空格
PORT=9210;searchpath=zhnf;DATABASE=db_test;HOST=192.168.1;PASSWORD=abc;USER ID=joe;No Reset On Close=true;
表名或者字段名存在大写的行情况,我们可以禁止转小写 (默认是推荐用小写表的)
var db= new SqlSugarClient(new ConnectionConfig(){ DbType = SqlSugar.DbType.PostgreSQL, ConnectionString = Config.ConnectionString, IsAutoCloseConnection = true, MoreSettings= new ConnMoreSettings() { PgSqlIsAutoToLower = false,//CRUD不自动转小写 PgSqlIsAutoToLowerCodeFirst = false, // 建表 不自动转小写 }})
SqlSugar.GaussDBNativeCore SqlSugarCore
//这行代码扔程序启动时 InstanceFactory.CustomAssemblies = new System.Reflection.Assembly[] { typeof(SqlSugar.GaussDBCore.GaussDBDataAdapter).Assembly }; //创建DB var db = new SqlSugarClient(new ConnectionConfig() { ConnectionString = "PORT=5432;DATABASE=SqlSugar5Demo;HOST=localhost;PASSWORD=postgres;USER ID=postgres", DbType = SqlSugar.DbType.GaussDBNative,//设置GaussDBNative IsAutoCloseConnection = true, MoreSettings = new ConnMoreSettings() { //如果是GaussDb就配置GaussDb如果是OpenGauss就配置 DatabaseModel = SqlSugar.DbType.OpenGauss } }, db => { db.Aop.OnLogExecuting = (x, y) => { Console.WriteLine(x); }; });
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();
var dt=db.Ado.GetDataTable("select * from table where id=@id and name like @name", new{id=1,name="%"+jack+"%"}); //原生SQL用实体 sql 查询 List<ClassA> t=db.Ado.SqlQuery<ClassA>(sql);
更多用法看左边菜单
2016 © donet5.comApache Licence 2.0