赞
踩
SqlSugar是一款轻量级ORM框架,专门用于.Net平台,提高开发效率,简化数据库操作。
①高性能:在大数据量的插入和查询操作中,SqlSugar的性能明显高于其他ORM框架。
②高扩展性:支持自定义Lamada函数解析、扩展数据类型、支持自定义实体特性、外部缓存等。
③数据库支持:支持多种数据库,包括关系型数据库、时序数据库、列式存储库等。
- var GetAll = db.Queryable<实体>().ToList();//查询所有数据
-
- var GetId = db.Queryable<实体>().First(a=>a.Name = 实体.Name);//根据Id查询单条数据
-
- var GetPrimaryKey = db.Queryable<实体>().Insingle(2);//根据主键查询数据
-
- var sum = db.Queryable<实体>().Sum(a=>a.Id);//查询Id总和
-
- var IsAny = db.Queryable<实体>().where(a=>a.Id).Any();//查询是否存在
-
- var GetRenameList = db.Queryable<实体>().As("表别名").ToList();//等同于select * from 表别名
-
- var list = db.Queryable<实体>().where(i=>i.Name.Contains(实体.Name)).ToList();//模糊查询
-
- var ListWhereIf = db.Queryable<实体>()
- .whereIF(!string.IsNullOrWhiteSpace(实体.Name),i=>i.Name.Contains(实体.Name));
-
-
- RefAsync<int> total = 0;
- db.Queryable<实体>().ToPageListAsync(pageIndex,pagesize,total);//异步分页查询
-
-
- var query1 = db.Queryable<实体>()
- .Select(i=>new model{
- Name = i.Name
- });
- var query2 = db.Queryable<实体>()
- .Select(i=>new model{
- Name = i.Name
- });
- var list = db.UnionAll(query1,query2).ToList();//并集查询
-
- //1.Where和WhereIF的区别:
- //WhereIF就是满足特定条件的时候才会执行查询条件
-
- //2.IsNullOrWhiteSpace和IsNullOrEmpty的区别:
- //IsNullOrWhiteSpace通常检查string字符串是否为null或者是否仅包含空白字符(空格、换行符等等)。
- //IsNullOrEmpty通常检查string字符串是否为null或者为空的时候。
-
- //3.Insingle适用于匹配一组值的语句查询
- var query = db.Queryable<实体>()
- .LeftJoin<实体>((a,b)=>a.P_Id == b.P_Id)
- .LeftJoin<实体>((a,b,c)=>a.P_proCode == c.P_proCode)
- .Select((a,b,c)=>new 实体
- {
-
- P_Name = a.P_Name,
- P_Price = a.P_Price,
- P_InteName = b.P_InteName,
- P_Goods = c.P_Goods
- });//联表查询
- //1.根据实体插入数据
- db.Insertable(value).ExecuteCommand();//同步方式
- await db.Insertable(value).ExecuteCommandAsnyc();//异步方式
-
- //2.根据字典插入
- var value = new Dictionary<string,object>();
- dt.Add("name","value1");
- dt.Add("sex","value2");
- db.Insertable(value).ExecuteCommandAsnyc();
-
- //3.不插入某列
- db.Insertable(value).IgnoreColumns(i=>new
- {
- i.Name,i.Sex
- }).ExecuteReturnIdentity();
-
-
- //4.只添加某一列字段数据
- db.Insertable(value).InsertColumns(i=>new
- {
- i.Name,
- i.Sex
- }).ExecuteReturnIdentity();
- //ExecuteReturnIdentity-返回自增列
- //IgnoreColumns-忽略某一列
-
- //5.忽略为空的字段
- db.Insertable(value).IngnoreColunms(ignoreNullColumn:true).ExecuteCommandAsnyc();
-
- //6.大数据插入
- db.Insertable(value).UseSqlServer().ExecuteBlueCopy();
- //1.根据主键更新单条数据
- var result = db.Updateable<实体>()
- .ExecuteCommand();
-
- //2.忽略某些字段的更新数据
- var result = db.Updateable(value)
- .IgnoreColumns(i=>new
- {
- i.Name,
- i.UserId
- }).ExecuteCommand();
-
- //3.只更新某些字段的值
- var result = db.Updateable(value)
- .UpdateColumns(i=>new
- {
- i.Name,
- i.Sex
- }).ExecuteCommand();
-
- //4.只更新不为null的字段的值
- db.Updateable(value)
- .IgnoreColumns(ignoreAllNullColumns:true).ExecuteCommand();
-
- //5.根据表达式更新
- await db.Updateable<实体>()
- .SetColumns(u=>u.F_Name == 实体.F_Name)
- .SetColumns(u=>u.F_Date == 实体.F_Date)
- .SetColumnsIF(实体.F_Status==1,u=>u.F_CloseDate == DateTime.Now)//如果状态为1的时候,设置关闭时间为当前时间
- .Where(u=>u.F_Id == 实体.F_Id)
- .ExecuteCommandAsync();
-
- //1.根据实体删除数据
- db.Deleteable<实体>()
- .Where(new Student()
- {
- Id = 实体.Id
- }).ExecuteCommand();
-
- //2.根据表达式删除数据
- db.Deleteable<实体>()
- .Where(i=>i.Id == 实体.Id)
- .ExecuteCommand();
-
- //3.子查询删除
- db.Deleteable<实体>()
- .Where(p=>p.Id == SqlFunc.Subqueryable<实体>()
- .Where(s=>s.Id == p.Id).Select(s=>s.Id))
- .ExecuteCommand();
-
- //4.除最新几条删除
- int Num = 10;
- var Records = db.OrderMaps
- .Take(Num)
- .Select(i=>i.Id)
- .ToList();//获取最新的几条的记录
- db.OrderMaps.Where(i=>!Records.Contains(i.Id)).Delete();//删除最新的几条之外的数据记录
- //1.调用存储过程
- db.Ado.UseStoredProcedure().存储过程
- var res = db.Ado.UseStoredProcedure()
- .GetDataTable("sp_Class",new{name="学前1班",type="大班"});
-
- //2.调用Sql
- var dt = db.Ado.GetDataTable("select * from 表名 where id=@id and name=@name",
- new{id=1,name=2});
-
- var dt = db.Ado.GetDataTable("select * from 表名 where id=@id and name=@name",new List<SugarParameter>(){
- new SugarParameter("@id",1),
- new SugarParameter("@name",2)
- });
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。