已经有大量用户成功完成了项目,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