can't convert string to decimal 返回
dbtype为sqlserver,查看代码发现this.Context.Ado.DbBind.StringThorw 限制了到decimal的类型转换。即使设置了自定义转换器也不行
热忱回答(6)
-
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 VIP0
2026/4/15db.Ado.GetDataTable 用这个方法
0 回复 -
fate sta VIP0
2026/4/15转换器只能针对实体。
0 回复 -
誓 VIP0
2026/4/16@fate sta middle 返回 IDataReader 后,应该是要转Entity的, 转换器也不生效吗?
0 回复