介绍一些我尝试的mysqlSugar的数据库操作

修改密码

var status =  db.Update<Users>(new { password = user.password }, it => it.username == user.username);

更新数据(防止空值一起更新)

首先封装一个函数(判断是否为空或者数值为0),当然sqlsugar有自己的查询函数,判断值不为空且大于0  SqlFunc.HasNumber(object thisValue)

        public  void ForeachDisableColumns<T>(T model){Type t = model.GetType();PropertyInfo[] PropertyList = t.GetProperties();foreach (PropertyInfo item in PropertyList){string name = item.Name;object value = item.GetValue(model);if (value == null || value.ToString() == "0"){db.AddDisableUpdateColumns(name);//新语法添加禁止更新列
                }}}

则结合以上函数,更新数据的用法

       ForeachDisableColumns(user);db.Update<Users>(user, it => it.userid == user.userid);

批量更新,同样使用上述封装的方法

            string strArr = "[{'name':'Kotonami','userid':'1'},{'name':'Akinama','userid':'17'},{'name':'Momozawa','userid':'6'}]";List<Users> newuser = JsonConvert.DeserializeObject<List<Users>>(strArr);//批量更新   数据量小时建议使用大于十条用SqlBulkReplaceforeach (var item in newuser){ForeachDisableColumns(item);}db.UpdateRange(newuser);db.DisableUpdateColumns = null;//清空禁止更新

返回行数

            var list5 = db.SqlQuery<int>("select userid from Users limit 0,1").SingleOrDefault();

跨表查询,查询某班级学生的姓名和学号

         //方法1outStr = db.SqlQueryJson("select name from Users,Class where class.stuid = Users.userid and class.classid = '" + newclass.classid + "'");//方法2outStr = db.Queryable<Class>().JoinTable<Users>((cl, us) => us.userid == cl.stuid)//两表共有的条件on......Where<Class>(cl => cl.classid == newclass.classid)//主表的条件where......Select("name,sex").ToJson();

三表查询 查询班级名称,该班级的学生姓名和用户id

            outStr = db.Queryable<Class>().JoinTable<Users>((cl, us) => cl.stuid == us.userid).JoinTable<MyClass>((cl, mc) => cl.classid == mc.classid).Where(cl => cl.classid == newclass.classid).Select("name,sex,className").ToJson();

批量插入

            string strList = "[{'classid':'2','stuid':'2'},{'classid':'2','stuid':'1'},{'classid':'2','stuid':'3'}]";List<Class> cl = JsonConvert.DeserializeObject<List<Class>>(strList);foreach (var item in cl){try{db.Insert(item);outStr = "插入成功!";}catch (Exception ex){outStr = ex.Message;}}

查看学习Math课程的学生的数量和名字

            //方法1 但是稍显复杂outStr = db.Queryable<Class>().JoinTable<Users>((cls, us) => cls.stuid == us.userid, JoinType.Inner).JoinTable<MyClass>((cls, mc) => cls.classid == mc.classid && mc.classType == "Math", JoinType.Inner).Select("name").ToJson();//方法2 也不简单outStr = db.Sqlable().From("Class", "cl").Join("Users", "us", "cl.stuid", "us.userid", JoinType.Inner).Join("MyClass", "mc", "mc.classid", "cl.classid", JoinType.Inner).Where("mc.classType = 'Math'").SelectToJson("name");//方法3outStr = db.SqlQueryJson("SELECT name FROM users,class,myclass where users.userid = class.stuid and class.classid = myclass.classid and classType= 'Math'");

分页查询

            //这里我创建了一个Page类来接收页面的Index和Size         var pageIndex = pages.pageIndex;var pageSize = pages.pageSize;var totalCount = 0;var page = db.Queryable<Users>().OrderBy(it => it.userid).ToPageList(pageIndex, pageSize, ref totalCount);int totalpages = totalCount + 1 / pageSize;//保证最后一面即使不满足pagesize也占一面pages.totalPages = totalpages;       //最后你可以处理成Json返回你要的数据

简单去重

            outStr = db.Queryable<Users>().Select("username,password").GroupBy("username,password").ToJson();// 性能优于distinct  

转载于:https://www.cnblogs.com/RikuBlog/p/9585916.html

.Net Core+mySqlSugar的一些稍复杂操作相关推荐

  1. mysql复杂操作,.Net Core+mySqlSugar的一些稍复杂操作

    介绍一些我尝试的mysqlSugar的数据库操作 修改密码 var status = db.Update(new { password = user.password }, it => it.u ...

  2. ASP.NET Core微服务(六)——【redis操作】

    ASP.NET Core微服务(六)--[redis操作]: Redis 是一个高性能的key-value数据库. redis的出现,很大程度补偿了memcached这类key/value存储的不足, ...

  3. .NET Core WebApi中实现数据库的操作(之SqlServer)

    一.实现效果 .NET Core WebApi基础入门项目源码下载 二.SqlSugar数据操作框架介绍 SqlSugar是一款老牌 .NET 开源ORM框架,由果糖大数据科技团队维护和更新的国产操作 ...

  4. core分析-间接的指针误操作

    core分析-间接的指针误操作 2013-11-26 17:22  528人阅读  评论(0)  收藏  举报   分类: c++(19)  版权声明:本文为博主原创文章,未经博主允许不得转载. 先来 ...

  5. mysql sqlsugar_.net core +mysqlSugar(最为简单的增删改查)

    首先建立.net Core API - empty 这个就不说了 然后创建新的Controller 记得添加路由 [Route("api/Users")] 然后在Nuget Pac ...

  6. [小技巧]EF Core中如何获取上下文中操作过的实体

    原文地址:https://www.cnblogs.com/lwqlun/p/10576443.html 作者:Lamond Lu 源代码:https://github.com/lamondlu/EFC ...

  7. Asp.net Core基于MVC框架实现PostgreSQL操作

    简单介绍 Asp.net Core最大的价值在于跨平台.跨平台.跨平台.重要的事情说三遍.但是目前毕竟是在开发初期,虽然推出了1.0.0 正式版,但是其实好多功能还没有完善.比方说编译时的一些文件编码 ...

  8. ASP.NET CORE WEB应用(有数据库操作的应用)发布到IIS

    我当前运行环境: 电脑操作系统:win10专业版 编译器版本:VS2019 ASP.NET CORE 版本:ASP.NET CORE 5.0 数据库:SQL Server 2019 Express 默 ...

  9. EF Core学习笔记:反向工程 + 底层操作数据库原理

    EF core三种建模模式:DB first / Model first / Code first 反向工程:根据数据库表来反向生成实体类 应用场景:通过旧的数据库生成新的项目 命令: Scaffol ...

最新文章

  1. “崩溃!我再也不搞 AI 了”谷歌 AI 专家:别让你的方法打败你!
  2. 【LeetCode】Recursion(共11题)
  3. 常见算法的python实现(Github标星75.5k+)
  4. String类及其构造器和常用方法
  5. Django(part24)--查询数据
  6. 重载运算符操作_学习
  7. LoadRunner常遇见的问题
  8. logstash的output插件
  9. 未能找到服务器的主机名,未能找到服务器的主机名
  10. 计算机程序的思维逻辑 (91) - Lambda表达式
  11. 关于360笔试部分题目小结
  12. 数据库优化实践【信息跟踪篇】
  13. 线程、同步异步、队列
  14. linux蓝牙安装程序,Linux 端蓝牙调试工具
  15. python画图——雪花(科赫曲线)
  16. 微信小程序 获取formId
  17. Java实现基于朴素贝叶斯的情感词分析
  18. python实验楼工资计算器_挑战:工资计算器读写数据文件
  19. Flutter 布局 - UI - 官方文档 - 学习速记(一)
  20. 中控WinSwitch3 WinSwitch可视化软件 灯光控制管理系统

热门文章

  1. 【MATLAB】 csvwrite数据缺失怎么办
  2. 中石油《计算机应用基础》,2017中国石油大学《计算机应用基础》第3阶段在线作业.doc...
  3. java类的定义的实例_Java中类的定义和初始化示例详解
  4. Java ArrayList与LinkedList数据结构和特点
  5. w ndows7文档加密取消,win7文件夹怎么加密?windows7文件加密方法
  6. android fragment addtobackstack,Android Fragment Back Stack的问题
  7. swagger-ui.html 404,解决访问swagger2报404问题
  8. Eclipse 答疑:代码版权?如何更改 Eclipse 中注释块的 @author 版权信息?
  9. 十、Python第十课——字典的些许知识(重点)
  10. CSS中div覆盖另一个div