questdb批量更新转换成实际执行的sql语句会存在数据类型不一致:inconvertible types: STRI 返回

/// <summary>
/// 批量修改实体(速度快)
/// </summary>
/// <param name="UpdateObjs"></param>
/// <returns></returns>
public async Task<bool> Update(List<TEntity> UpdateObjs)
{
return await _db.Updateable(UpdateObjs).ExecuteCommandHasChangeAsync();
}
C#字段定义代码:
[SugarColumn(DecimalDigits = 3, IsNullable = true)]
public decimal PerRatio { get; set; }
questdb字段创建表对应字段:
用Updateable自动转换出来实际执行的sql:
UPDATE "users" SET "CREATETIME"='2025-01-15 21:50:44.713', "MODIFYID"=12, "MODIFYBY"='blogadmin', "MODIFYTIME"='2025-01-16 10:00:04.253', "ISDELETED"=false, "PERIODDATE"='2025-01-15 00:00:00.000', "PERIODNUM"='20250115010', "GUID"='4400080933630246912', "UID"=7, "ULOGINNAME"='hy1', "IP"='127.0.0.1', "PERRATIO"='0.001' WHERE "ID"=4400080944719986689;
会报错:inconvertible types: STRING -> DOUBLE [from=, to=perratio] 因为PERRATIO为:double类型
用Updateable自动转换出来'0.001' 要改成0.001为才正确,如:
UPDATE "users" SET "CREATETIME"='2025-01-15 21:50:44.713', "MODIFYID"=12, "MODIFYBY"='blogadmin', "MODIFYTIME"='2025-01-16 10:00:04.253', "ISDELETED"=false, "PERIODDATE"='2025-01-15 00:00:00.000', "PERIODNUM"='20250115010', "GUID"='4400080933630246912', "UID"=7, "ULOGINNAME"='hy1', "IP"='127.0.0.1', "PERRATIO"=0.001 WHERE "ID"=4400080944719986689;
热忱回答(2)
-
fate sta VIP0
2025/1/16用例发全
0 回复 -
fate sta VIP0
2025/1/16SqlSugarCore 5.1.4.176-preview01
已修复 ,不升级或者用double
0 回复