南通市网站建设我的完,网站开发 .net 开源,成都设计公司提成,北京专门做网站的公司系列文章目录
#x1f380;#x1f380;#x1f380; .NET开源 ORM 框架 SqlSugar 系列 #x1f380;#x1f380;#x1f380; 文章目录 系列文章目录一、前言 #x1f343;二、用法介绍三、方法列表四、使用案例五、调用存储过程六、in参数用法七、SqlServer带Go的脚…系列文章目录 .NET开源 ORM 框架 SqlSugar 系列 文章目录 系列文章目录一、前言 二、用法介绍三、方法列表四、使用案例五、调用存储过程六、in参数用法七、SqlServer带Go的脚本处理八、查询2个结果集九、集合参数批量操作十、表值参数、游标参数十一、DataSet转List类十二、类作为参数 .NET开源 ORM 框架 SqlSugar 系列 一、前言
下面的方法支持复杂的Sql 、 返回多个结果集 、存储过程等 、可以理解为了一个高级DbHelper。
二、用法介绍
//调用Sql
db.Ado.具体方法//调用存储过程
db.Ado.UseStoredProcedure().具体方法三、方法列表 四、使用案例
✨技巧Sql 中的关键词用 可以支持多库 //无参数
var dtdb.Ado.GetDataTable(sql) //上面列表中 SqlQuery 等方法都可以不一定是GetDataTable//参数1简化用法
var dtdb.Ado.GetDataTable(select * from table where idid and name like name,
new{id1,name%jack%});//参数2复杂用法
var dtdb.Ado.GetDataTable(select * from table where idid and name like name,
new ListSugarParameter(){new SugarParameter(id,1),new SugarParameter(name,%jack%) //执行sql语句
});//参数3结合用法
var pars db.Ado.GetParameters(new{p1,p2p});
pars[1].DbTypeSystem.Data.DbType.Date;
var dtdb.Ado.GetDataTable(sql,pars)//原生SQL用实体 sql 查询
ListClassA tdb.Ado.SqlQueryClassA(sql);//比db.SqlQueryable兼容性更强支持复杂SQL存储过程缺点没有自带的分页操作//原生SQL用匿名对象 sql 查询
Listdynamic tdb.Ado.SqlQuerydynamic(sql); //插入 更新操作一般用
db.Ado.ExecuteCommand(sql);//db.Ado.xxx 还有更多方法看文档最下面Sql 查询用
GetDataTableSqlQuery
Sql 增删改用
增删改可以用 ExecuteCommand
五、调用存储过程
//简单用法
var dt db.Ado.UseStoredProcedure().GetDataTable(sp_school,new{name张三,age0}); //带有output的存储过程
var nameP new SugarParameter(name, 张三);
var ageP new SugarParameter(age, null, true);//设置为output
var dt db.Ado.UseStoredProcedure().GetDataTable(sp_school,nameP,ageP);//返回dt
var list db.Ado.UseStoredProcedure().SqlQueryClass1(sp_school,nameP,ageP);//返回List
//更多返回方法 看文档最下面//ageP.Value可以拿到output值//SqlSever Datatable参数 看文档 SqlServer 中有介绍 //Oracle 游标参数用法 Blob类型 Clob类型 看文档 Oracle中有介绍 //如果是ReturnValue
var namePnew SugarParameter(name, 张三, typeof(string),ParameterDirection.ReturnValue);//我们还可以用 GetParameters 来简化参数操作 SugarParameter [] pars db.Ado.GetParameters(new{p1,p2p}); pars[1].DirectionParameterDirection.Output;六、in参数用法
var dt db.Ado.SqlQueryOrder(select * from [order] where id in(ids),new { ids new int[] { 1,2,3 } }); //是个数组不是字符串// new SugarParamter(ids,int[] { 1,2,3}) //select * from [order] where id in(1,2,3)七、SqlServer带Go的脚本处理
db.Ado.ExecuteCommandWithGo(sql) //go语句是独立一行就支持八、查询2个结果集
等同于 Dapper 中的 querymultiple
var viewsdb.SqlQueryT,T2(select * from t; select * from t2);//多实体
var t1listviews.Item1;
var t2listviews.Item2;九、集合参数批量操作
和 Dapper 中的2层集合的参数功能是一样的SqlSugar 中不用写 SQL 用法如下
//删除
ListDictionarystring,object list new ListDictionarystring,object;
list.Add(字典);//只需要条件列
db.Deleteableobject().AS([Order]).WhereColumns(list).ExecuteCommand();//插入
ListDictionarystring,object list new ListDictionarystring,object;
list.Add(字典)//插入所有要的所有列
db.Insertable(list).AS(student).ExecuteCommand();//更新
ListDictionarystring,object list new ListDictionarystring,object;
list.Add(字典)//更新和条件所需要的所有列
var t66 db.Updateable(list).AS(student).WhereColumns(id).ExecuteCommand();特殊SQL批量 //5.0.6.3using (db.Ado.OpenAlways()) { //开启长连接foreach(var pars in Listparameter[]){db.Ado.ExecuteCommand(sql,paras);}}十、表值参数、游标参数
文档搜索你用的具体数据库 SqlServer 表值文档搜索你用的具体数据库 Oracle表游标
十一、DataSet转List类
SqlQueryT,T2,T3.. 最多只能有 7 个我们可以用 db.Ado.GetDataSetAll 拿出超过 7 个结果集。
var datablesds.Tables.CastDataTable().ToList();
foreach (var item in tables)
{var list db.Utilities.DataTableToListOrder(item);
}十二、类作为参数
默认只支持匿名类作为参数普通类参数是不支持的。 如果想支持类作为参数可以自个封装个方法。
代码如下
var parsnew {id1;namea};//默认支持匿名类//普通类作为参数最大问题 会把所有属性都变成参数 匿名类型就不存在这个问题
var obj new Order(){ ....} ;//类对象
SugarParameter[] parsobj.GetType().GetProperties().Select(it new SugarParameter(it.Name, it.GetValue(obj))).ToArray();.NET开源 ORM 框架 SqlSugar 系列
【开篇】.NET开源 ORM 框架 SqlSugar 系列 【入门必看】.NET开源 ORM 框架 SqlSugar 系列 【实体配置】.NET开源 ORM 框架 SqlSugar 系列 【Db First】.NET开源 ORM 框架 SqlSugar 系列 【Code First】.NET开源 ORM 框架 SqlSugar 系列 【数据事务】.NET开源 ORM 框架 SqlSugar 系列 【连接池】.NET开源 ORM 框架 SqlSugar 系列 【查询目录】.NET开源 ORM 框架 SqlSugar 系列 【查询基础】.NET开源 ORM 框架 SqlSugar 系列 【排序用法】.NET开源 ORM 框架 SqlSugar 系列 【分组去重】.NET开源 ORM 框架 SqlSugar 系列 【联表查询】.NET开源 ORM 框架 SqlSugar 系列 【导航查询】.NET开源 ORM 框架 SqlSugar 系列 【子查询】.NET开源 ORM 框架 SqlSugar 系列 【嵌套查询】.NET开源 ORM 框架 SqlSugar 系列 【配置查询】.NET开源 ORM 框架 SqlSugar 系列 【并集查询】.NET开源 ORM 框架 SqlSugar 系列 【树型查询】.NET开源 ORM 框架 SqlSugar 系列 【表格查询】.NET开源 ORM 框架 SqlSugar 系列 【动态表达式】.NET开源 ORM 框架 SqlSugar 系列 【查询函数】.NET开源ORM框架 SqlSugar 系列 【过滤器】.NET开源 ORM 框架 SqlSugar 系列 【跨库查询、多库查询】.NET开源 ORM 框架 【报表查询】.NET开源ORM框架 SqlSugar 系列 【Where语法全解密】.NET开源ORM框架 SqlSugar 系列 【Select 语法全解密】.NET开源ORM框架 SqlSugar 系列 【查询返回结果类型】.NET开源ORM框架 SqlSugar 系列 【insert 插入数据语法合集】.NET开源ORM框架 SqlSugar 系列 【SqlSugar雪花ID常见问题】.NET开源ORM框架 SqlSugar 系列