当前位置:   article > 正文

SqlSugar小结_sqlsugar ignorecolumns

sqlsugar ignorecolumns

一、导语

1.SqlSugar是什么?

SqlSugar是一款轻量级ORM框架,专门用于.Net平台,提高开发效率,简化数据库操作。

2.为什么要使用SqlSugar?

①高性能:在大数据量的插入和查询操作中,SqlSugar的性能明显高于其他ORM框架。

②高扩展性:支持自定义Lamada函数解析、扩展数据类型、支持自定义实体特性、外部缓存等。

③数据库支持:支持多种数据库,包括关系型数据库、时序数据库、列式存储库等。

3.怎么使用SqlSugar?

Nuget包管理下载:工具——Nuget包管理器——管理解决方案的Nuget程序包

二、查询

1.单表查询

  1. var GetAll = db.Queryable<实体>().ToList();//查询所有数据
  2. var GetId = db.Queryable<实体>().First(a=>a.Name = 实体.Name);//根据Id查询单条数据
  3. var GetPrimaryKey = db.Queryable<实体>().Insingle(2);//根据主键查询数据
  4. var sum = db.Queryable<实体>().Sum(a=>a.Id);//查询Id总和
  5. var IsAny = db.Queryable<实体>().where(a=>a.Id).Any();//查询是否存在
  6. var GetRenameList = db.Queryable<实体>().As("表别名").ToList();//等同于select * from 表别名
  7. var list = db.Queryable<实体>().where(i=>i.Name.Contains(实体.Name)).ToList();//模糊查询
  8. var ListWhereIf = db.Queryable<实体>()
  9. .whereIF(!string.IsNullOrWhiteSpace(实体.Name),i=>i.Name.Contains(实体.Name));
  10. RefAsync<int> total = 0;
  11. db.Queryable<实体>().ToPageListAsync(pageIndex,pagesize,total);//异步分页查询
  12. var query1 = db.Queryable<实体>()
  13. .Select(i=>new model{
  14. Name = i.Name
  15. });
  16. var query2 = db.Queryable<实体>()
  17. .Select(i=>new model{
  18. Name = i.Name
  19. });
  20. var list = db.UnionAll(query1,query2).ToList();//并集查询
  21. //1.Where和WhereIF的区别:
  22. //WhereIF就是满足特定条件的时候才会执行查询条件
  23. //2.IsNullOrWhiteSpace和IsNullOrEmpty的区别:
  24. //IsNullOrWhiteSpace通常检查string字符串是否为null或者是否仅包含空白字符(空格、换行符等等)。
  25. //IsNullOrEmpty通常检查string字符串是否为null或者为空的时候。
  26. //3.Insingle适用于匹配一组值的语句查询

2.联表查询 

  1. var query = db.Queryable<实体>()
  2. .LeftJoin<实体>((a,b)=>a.P_Id == b.P_Id)
  3. .LeftJoin<实体>((a,b,c)=>a.P_proCode == c.P_proCode)
  4. .Select((a,b,c)=>new 实体
  5. {
  6. P_Name = a.P_Name,
  7. P_Price = a.P_Price,
  8. P_InteName = b.P_InteName,
  9. P_Goods = c.P_Goods
  10. });//联表查询

三、增加

  1. //1.根据实体插入数据
  2. db.Insertable(value).ExecuteCommand();//同步方式
  3. await db.Insertable(value).ExecuteCommandAsnyc();//异步方式
  4. //2.根据字典插入
  5. var value = new Dictionary<string,object>();
  6. dt.Add("name","value1");
  7. dt.Add("sex","value2");
  8. db.Insertable(value).ExecuteCommandAsnyc();
  9. //3.不插入某列
  10. db.Insertable(value).IgnoreColumns(i=>new
  11. {
  12. i.Name,i.Sex
  13. }).ExecuteReturnIdentity();
  14. //4.只添加某一列字段数据
  15. db.Insertable(value).InsertColumns(i=>new
  16. {
  17. i.Name,
  18. i.Sex
  19. }).ExecuteReturnIdentity();
  20. //ExecuteReturnIdentity-返回自增列
  21. //IgnoreColumns-忽略某一列
  22. //5.忽略为空的字段
  23. db.Insertable(value).IngnoreColunms(ignoreNullColumn:true).ExecuteCommandAsnyc();
  24. //6.大数据插入
  25. db.Insertable(value).UseSqlServer().ExecuteBlueCopy();

四、修改

  1. //1.根据主键更新单条数据
  2. var result = db.Updateable<实体>()
  3. .ExecuteCommand();
  4. //2.忽略某些字段的更新数据
  5. var result = db.Updateable(value)
  6. .IgnoreColumns(i=>new
  7. {
  8. i.Name,
  9. i.UserId
  10. }).ExecuteCommand();
  11. //3.只更新某些字段的值
  12. var result = db.Updateable(value)
  13. .UpdateColumns(i=>new
  14. {
  15. i.Name,
  16. i.Sex
  17. }).ExecuteCommand();
  18. //4.只更新不为null的字段的值
  19. db.Updateable(value)
  20. .IgnoreColumns(ignoreAllNullColumns:true).ExecuteCommand();
  21. //5.根据表达式更新
  22. await db.Updateable<实体>()
  23. .SetColumns(u=>u.F_Name == 实体.F_Name)
  24. .SetColumns(u=>u.F_Date == 实体.F_Date)
  25. .SetColumnsIF(实体.F_Status==1,u=>u.F_CloseDate == DateTime.Now)//如果状态为1的时候,设置关闭时间为当前时间
  26. .Where(u=>u.F_Id == 实体.F_Id)
  27. .ExecuteCommandAsync();

五、删除

  1. //1.根据实体删除数据
  2. db.Deleteable<实体>()
  3. .Where(new Student()
  4. {
  5. Id = 实体.Id
  6. }).ExecuteCommand();
  7. //2.根据表达式删除数据
  8. db.Deleteable<实体>()
  9. .Where(i=>i.Id == 实体.Id)
  10. .ExecuteCommand();
  11. //3.子查询删除
  12. db.Deleteable<实体>()
  13. .Where(p=>p.Id == SqlFunc.Subqueryable<实体>()
  14. .Where(s=>s.Id == p.Id).Select(s=>s.Id))
  15. .ExecuteCommand();
  16. //4.除最新几条删除
  17. int Num = 10;
  18. var Records = db.OrderMaps
  19. .Take(Num)
  20. .Select(i=>i.Id)
  21. .ToList();//获取最新的几条的记录
  22. db.OrderMaps.Where(i=>!Records.Contains(i.Id)).Delete();//删除最新的几条之外的数据记录

 六、原生Sql操作

  1. //1.调用存储过程
  2. db.Ado.UseStoredProcedure().存储过程
  3. var res = db.Ado.UseStoredProcedure()
  4. .GetDataTable("sp_Class",new{name="学前1班",type="大班"});
  5. //2.调用Sql
  6. var dt = db.Ado.GetDataTable("select * from 表名 where id=@id and name=@name",
  7. new{id=1,name=2});
  8. var dt = db.Ado.GetDataTable("select * from 表名 where id=@id and name=@name",new List<SugarParameter>(){
  9. new SugarParameter("@id",1),
  10. new SugarParameter("@name",2)
  11. });

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/135007
推荐阅读
相关标签
  

闽ICP备14008679号