c# - 实体框架数据库首先不接受小数点后 12 位的值
问题描述
在我的数据库中,我有一列用十进制 (30,12) 定义。我正在尝试使用最多 12 位的小数更新列值。但是当我从实体框架执行 dbcontext.save 时,它给了我错误“转换溢出”。基本上我想支持一个十进制,左边有 14 个 diit,右边有 12 个数字。(12345678998734.898989898989)
解决方案
SQL Server 中允许的最大精度为 38。但 SQL Server 十进制数据类型未映射到其整个范围内的 .Net 十进制。.Net 十进制类型仅映射到十进制(29,X)范围内的 SQL Server 之一。(来源)
这意味着如果您有一个精度高于 29 的小数列并且无论比例如何,您都将无法使用本机 .Net 数据类型。
尝试使用 SqlDecimal 类型。
推荐阅读
- python - Docker 阻止传入连接
- sql - 如何获取两个日期范围之间的归档总和,其中从日期到日期在表中给出
- c++ - 如何使用包含多维向量的指针数组
- python - 使用 pyqt5 QAbstractTableModel 时将箭头键连接到方法
- javascript - 国际日期格式未按预期格式化数据nodeJS
- firebase - firestore 更新列表重叠值增量不起作用
- ios - iOS如何在升级Apple自动续订订阅时计算按比例分配的价值
- java - hibernate-validatior-cdi:为什么 ConstraintValidator 不是weld-se 容器中的托管实例?
- android - 如何以整数形式获取设备宽度以在 Jetpack Compose 中显示 AdMob 自适应横幅
- reactjs - 无法在 heroku 上部署:.env 和 PORT 错误