声明:本作者无恶意只是觉得这个功能很不错,平常工作当中经常用到,自己框架也做了相应的支持,本着技术共享目的。

  • 一、对象组合设置列更新支持 建议度:高

    • 业务场景

      1.更新列表需统一设置 例如:修改人ID、修改人名称、修改日期等
      2.更新列表需原字段参与计算,例如:更新次数、金额等
    • 优化前后区别

      前:需遍历设置你要更新的字段
      后:无需遍历设置更新字段,数据量越大性能越高 数据量小差异不大
    • SqlSugar 示例代码

                  var list = new List<Product>()
      {
      new Product()
      {
      ProductId = 1,
      ProductCode = "1001",
      },
      new Product()
      {
      ProductId = 1,
      ProductCode = "1002",
      }
      };
      var sql = db.Updateable(list).UpdateColumns(c => new
      {
      c.ProductCode
      }).SetColumns(c => new Product()
      {
      ModifyUserId = "666666",
      ModifyName = "靓仔"
      }).ToSqlString();
      Console.WriteLine(sql);
    • 目前可以得到友好异常提示

      中文提示 : 根据对像更新 db.Updateabe(对象) 禁止使用 SetColumns和Where ,你可以使用WhereColumns 和  UpdateColumns。 更新分为2种方式 1.根据表达式更新 2.根据实体或者集合更新 , 具体用法请查看文档
      English Message : no support SetColumns and Where
    • Fast.Framework 示例代码(参考实现)

                      var list = new List<Product>()
      {
      new Product()
      {
      ProductId = 1,
      ProductCode = "1001"
      },
      new Product()
      {
      ProductId = 2,
      ProductCode = "1002"
      }
      }; var sql = db.Update(list)
      .Columns(c => c.ProductCode)
      .SetColumns(c => new Product()
      {
      ModifyUserId = "666666",
      ModifyUserName = "靓仔",
      ModifyTime = DateTime.Now,
      UpdateCount = c.UpdateCount + 1
      }).ToSqlString(); Console.WriteLine(sql);
    • 输出Sql

      UPDATE `Product` `p1`
      INNER JOIN ( SELECT @ProductId_1 AS `ProductId`,@ProductCode_2 AS `ProductCode`
      UNION ALL
      SELECT @ProductId_3 AS `ProductId`,@ProductCode_4 AS `ProductCode` ) `p1_0` ON `p1`.`ProductId` = `p1_0`.`ProductId`
      SET `p1`.`ProductCode` = `p1_0`.`ProductCode`,`p1`.`ModifyUserId` = '666666',`p1`.`ModifyUserName` = '靓仔',`p1`.`ModifyTime` = @Now_1,`p1`.`UpdateCount` = ( `p1`.`UpdateCount` + 1 )

给SqlSugar一个优化建议的更多相关文章

  1. .NET程序的性能要领和优化建议

    前几天在老赵的博客上看到,Bill Chiles (Roslyn 编译器的Program Manager)写了一篇文章叫做<Essential Performance Facts and .NE ...

  2. Unity 几种优化建议

    转: http://user.qzone.qq.com/289422269/blog/1453815561?ptlang=2052 Unity 几种优化建议 最简单的优化建议: 1.PC平台的话保持场 ...

  3. Unity开发-你必须知道的优化建议

    转自:http://blog.csdn.net/leonwei/article/details/18042603 最近研究U3D开发,个人认为,精通一种新的技术,最快最好的方法就是看它的documen ...

  4. Jquery学习笔记--性能优化建议

    一.选择器性能优化建议 1. 总是从#id选择器来继承 这是jQuery选择器的一条黄金法则.jQuery选择一个元素最快的方法就是用ID来选择了. 1 $('#content').hide(); 或 ...

  5. memcached工作原理与优化建议

    申明,本文为转载文:http://my.oschina.net/liuxd/blog/63129 工作原理 基本概念:slab,page,chunk. slab,是一个逻辑概念.它是在启动memcac ...

  6. mysql5.6优化建议

    这篇文章主要介绍了MySQL5.6基本优化配置,详细分解了MySQL5.6需要优化的配置项,最终给出了一个优化案例,需要的朋友可以参考下     随着 大量默认选项的改进, MySQL 5.6比以前版 ...

  7. Android代码内存优化建议-OnTrimMemory优化

    原文  http://androidperformance.com/2015/07/20/Android代码内存优化建议-OnTrimMemory优化/ OnTrimMemory 回调是 Androi ...

  8. MYSQL 优化建议

    转自 http://coolshell.cn/articles/1846.html MYSQL 优化建议20条 1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效 ...

  9. 用DBMS_ADVISOR.SQLACCESS_ADVISOR创建SQL Access Advisor访问优化建议

    使用OEM方式来创建SQL Access Advisor访问优化建议,已经是四五年的事了,下面就来写写怎样使用DBMS_ADVISOR.SQLACCESS_ADVISOR来创建SQL Access A ...

  10. android应用的优化建议(转载)

    首先,这是我在http://www.oschina.net/translate/40-developer-tips-for-android-optimization看到的一片文章,感觉挺有道理的,所以 ...

随机推荐

  1. C++核心知识回顾(函数&参数、异常、动态分配)

    复习C++的核心知识 函数与参数 传值参数.模板函数.引用参数.常量引用参数 传值参数 int abc(int a,int b,int c) { return a + b * c; } a.b.c是函 ...

  2. 笔记:C++学习之旅---关联容器

    笔记:C++学习之旅---关联容器       关联容器和顺序容器有着根本的不同:关联容器中的元素是按关键字来保存和访问的.与之相对,顺序容器中的元素是按它们在容器中的位置来顺序保存和访问的.     ...

  3. 牛客网:华为机试题(python版本)

    输入一行:input() 输入的一行有多个信息:input().split() 有多组测试用例(多组同时输入): while true try except... 1.计算字符串最后一个单词的长度,单 ...

  4. Lucas定理——定义、证明、实现、运用

    目录 什么是Lucas定理 证明Lucas定理 Lucas定理求解组合数的C++实现 什么是Lucas定理 这是一个有助于分解组合数来求解的定理,适合模数小,数字大的问题. 有质数 \(p\),对于\ ...

  5. 微服务 - Nginx网关 · 进程机制 · 限流熔断 · 性能优化 · 动态负载 · 高可用

    系列目录: 微服务 - 概念 · 应用 · 通讯 · 授权 · 跨域 · 限流 微服务 - 集群化 · 服务注册 · 健康检测 · 服务发现 · 负载均衡 微服务 - Redis缓存 · 数据结构 · ...

  6. 深入理解前端字节二进制知识以及相关API

    当前,前端对二进制数据有许多的API可以使用,这丰富了前端对文件数据的处理能力,有了这些能力,就能够对图片等文件的数据进行各种处理. 本文将着重介绍一些前端二进制数据处理相关的API知识,如Blob. ...

  7. autojs系列-js入门1

    开头 确保 Autojs 和 adb 还有模拟器安装调试完成之后,就可以进行js的学习了 调试安装一部分步骤可以参考 https://www.cnblogs.com/c-keke/p/14919615 ...

  8. 2022-11-28:给定两个数组A和B,比如 A = { 0, 1, 1 } B = { 1, 2, 3 } A[0] = 0, B[0] = 1,表示0到1有双向道路 A[1] = 1, B[1]

    2022-11-28:给定两个数组A和B,比如 A = { 0, 1, 1 } B = { 1, 2, 3 } A[0] = 0, B[0] = 1,表示0到1有双向道路 A[1] = 1, B[1] ...

  9. 2022-09-27:给定一个棵树, 树上每个节点都有自己的值,记录在数组nums里, 比如nums[4] = 10,表示4号点的值是10, 给定树上的每一条边,记录在二维数组edges里, 比如ed

    2022-09-27:给定一个棵树, 树上每个节点都有自己的值,记录在数组nums里, 比如nums[4] = 10,表示4号点的值是10, 给定树上的每一条边,记录在二维数组edges里, 比如ed ...

  10. 2022-02-25:k8s安装zookeeper,yaml如何写?找份北京的golang后端工作,35岁,有人收我吗?

    2022-02-25:k8s安装zookeeper,yaml如何写?找份北京的golang后端工作,35岁,有人收我吗? 答案2022-02-25: yaml如下: apiVersion: apps/ ...