can't convert string to decimal 返回

SqlSugar 沟通中
6 426
该叫什么 发布于2026/4/14
悬赏:0 飞吻

dbtype为sqlserver,查看代码发现this.Context.Ado.DbBind.StringThorw 限制了到decimal的类型转换。即使设置了自定义转换器也不行

热忱回答6

  • fate sta fate sta VIP0
    2026/4/14

    如果用到SELECT  DTO也要加上转换器,100%可以,还有疑问可以提供实体类和代码。

    0 回复
  • 誓 VIP0
    2026/4/14

    @fate sta:对了,这个sqlclient其实不是原生实现是通过SqlMiddle封装的http接口,通过

        private async Task<IDataReader> GetDataReaderAsync(string sql, SugarParameter[] sqlParameters)

        {

            var result = await FetchAsync<DataTable>(sql, sqlParameters, "DataTable");

            return result.CreateDataReader();

    } 这个方式实现的,此处datatable中就是string类型的,是否会有影响

        


    0 回复
  • 誓 VIP0
    2026/4/14

    @fate sta:目前是根本不会调用转换器,在这之前就因为IDataReaderEntityBuilder.CheckType()抛出异常了

    0 回复
  • fate sta fate sta VIP0
    2026/4/15

    db.Ado.GetDataTable 用这个方法

    0 回复
  • fate sta fate sta VIP0
    2026/4/15

    转换器只能针对实体。

    0 回复
  • 誓 VIP0
    2026/4/16

    @fate sta middle 返回 IDataReader 后,应该是要转Entity的, 转换器也不生效吗?

    0 回复