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

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

    • 业务场景

      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. 2023成都.NET线下技术沙龙圆满结束

    2023年4月15日周六,由MASA技术团队和成都.NET俱乐部共同主办的2023年成都.NET线下技术沙龙活动在成都市世纪城新会展中心知域空间举行,共计报名人数90多人,实际到场60多人,13:30 ...

  2. 音视频通讯QoS技术及其演进

    利用多种算法和策略进行网络传输控制,最大限度满足弱网场景下的音视频用户体验. 良逸|技术作者 01 什么是QoS?音视频通讯QoS是哪一类? QoS(Quality of Service)是服务质量的 ...

  3. 2.JAVA入门基础知识

    数据类型: java的数据类型分为两大类:基本类型和引用类型 基本类型: 整数类型: byte 一个字节 -128-127 short 2个字节 32768-32767 int 4个字节 很大 lon ...

  4. Java的final修饰符

    final 实例域 可以将实例域定义为 final.对于 final 域来说,构建对象时必须初始化 final 实例域,构造对象之后就不允许改变 final 实例域的值了.也就是说,必须确保在每一个构 ...

  5. 笔记:C++学习之旅---初识C++

    笔记:C++学习之旅---初识C++          博主也是一个新手,学习编程才一年左右,刚大学毕业不久,以前在学校学习的语言主要是C,本人是从嵌入式学起的!我现在从事的公司主要是C++,所以我也 ...

  6. [双目视差] 单双目MATLAB 相机标定(二)双目摄像机标定

    文章目录 单双目MATLAB 相机标定(二)双目摄像机标定 一.环境准备 二.标定过程 单双目MATLAB 相机标定(二)双目摄像机标定 一.环境准备 MATLAB R2014a+windows7 6 ...

  7. Windows屏幕解锁服务原理及实现(1)

    https://github.com/zk2013/windows_remote_lock_unlock_screen 将生成的DLL注册至注册表 HKEY_LOCAL_MACHINE\SOFTWAR ...

  8. vue页面中展示markdown以及katex公式

    场景 数据库中有markdown语法的字符串,需要展示为正常的页面,难点在于其中的katex数学公式 解决方式 使用showdown及其族系插件 npm i showdown npm i showdo ...

  9. 2022-09-04:以下go语言代码输出什么?A:不能编译;B:45;C:45.2;D:45.0。 package main import ( “fmt“ ) func main() {

    2022-09-04:以下go语言代码输出什么?A:不能编译:B:45:C:45.2:D:45.0. package main import ( "fmt" ) func main ...

  10. 2022-05-28:某公司计划推出一批投资项目。 product[i] = price 表示第 i 个理财项目的投资金额 price 。 客户在按需投资时,需要遵循以下规则: 客户在首次对项目 pr

    2022-05-28:某公司计划推出一批投资项目. product[i] = price 表示第 i 个理财项目的投资金额 price . 客户在按需投资时,需要遵循以下规则: 客户在首次对项目 pr ...