C# 使用 FreeSql 处理 decimal 类型时 , Parameter value 'XXX' is out of range
在更新decimal类型字段时,提示 decimal 字段的值超出了范围。

最开始以为是数据库的问题,数据库定义的类型是 decimal(20,2), 确认了参数的值只有 9 位整数以及两位小数,没有超出数据库的范围。
然后要去查找了FreeSQL 的官方文档,最后才发现是 FreeSQL 里默认只支持 decimal(10,2) ,需要全局修改decimal类型的支持范围,比如支持 decimal(18,6)
修改的代码如下:
1 fsql1.Aop.ConfigEntityProperty += (s, e) => 2 { 3 if (e.Property.PropertyType == typeof(decimal)|| e.Property.PropertyType == typeof(decimal?)) 4 { 5 e.ModifyResult.Precision = 18; 6 e.ModifyResult.Scale = 6; 7 } 8 };

浙公网安备 33010602011771号