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 };

 

posted @ 2022-02-15 12:59  Nine_Jason  阅读(766)  评论(0)    收藏  举报