[bug] UpdateColumns使用匿名对象指定列时会有bug 返回

SqlSugar 处理完成
13 225

代码来自 SqlSugar\Src\Asp.NetCore2\SqlSeverTest\9_Update.cs 。  

注意看红框里的代码,使用UpdateColumns方法且通过匿名对象指定更新列时,只会有一个列生效,只更新了"Name",可以看右边生成的SQL。我后面在匿名对象里添加“Remark”属性,生成的sql也只更新了"Name"。

使用强类型StudentWithSnowflake没有这个问题。

updatebug.PNG


我简单调试了一下代码,代码懂一点点。我把执行的“ArraySingle”方法换成执行“Select”后,生成的sql就正常了。

匿名对象的lambda.PNG

最后,请教大佬一个问题:一次http请求中,要使用事务,则的所有数据库操作必须是同一个Connection,并且由这个Connection创建事务。我的这个理解是对的吧?  

如果这个理解是对的,能简单说下多库事务原理吗?多库操作肯定Connection都不同了。

热忱回答13

  • fate sta fate sta VIP0
    2023/12/1

    你语法错误

    0 回复
  • fate sta fate sta VIP0
    2023/12/1

    认真把文档 更新 : 右边的标题1和标题2看懂

    0 回复
  • fate sta fate sta VIP0
    2023/12/1

    不要造语法

    0 回复
  • fate sta fate sta VIP0
    2023/12/1

    image.png

    0 回复
  • fate sta fate sta VIP0
    2023/12/1

    2边的API是不一样

    0 回复
  • @fate sta:没有造语法,这是官方给的例子,是官方代码测试代码。你好,你是作者本人吗

    0 回复
  • 代码改成这样,生成的sql是正常的

    db.Updateable(updateObj).UpdateColumns(it => new { it.Name, it.Date }).ExecuteCommand();


    0 回复
  • @fate sta

    明白,UpdateColums只是设置更新列,更新数据还是来自updateObj,官方代码笔误了。

    最后,请教大佬一个问题:一次http请求中,要使用事务,则的所有数据库操作必须是同一个Connection,并且由这个Connection创建事务。我的这个理解是对的吧?  

    如果这个理解是对的,能简单说下多库事务原理吗?多库操作肯定Connection都不同了。


    0 回复
  • fate sta fate sta VIP0
    2023/12/1

    image.png

    哪里笔误了 ,文档并没有写出UpdateColumns可以赋值

    0 回复
  • fate sta fate sta VIP0
    2023/12/1

    他的作用是设置更新哪几列

    0 回复
  • fate sta fate sta VIP0
    2023/12/1

    多租户事务: 

    https://www.donet5.com/Home/Doc?typeId=2246 (标题3)

    0 回复
  • 图片里的代码来自 SqlSugar\Src\Asp.NetCore2\SqlSeverTest\9_Update.cs,不是我写的。

    0 回复
  • fate sta fate sta VIP0
    2023/12/2

    @寻己Tenleft:好的 源码DEMO写错了

    0 回复