首页 > 解决方案 > 实体框架数据库首先不接受小数点后 12 位的值

问题描述

在我的数据库中,我有一列用十进制 (30,12) 定义。我正在尝试使用最多 12 位的小数更新列值。但是当我从实体框架执行 dbcontext.save 时,它​​给了我错误“转换溢出”。基本上我想支持一个十进制,左边有 14 个 diit,右边有 12 个数字。(12345678998734.898989898989)

标签: c#databaseentity-framework

解决方案


SQL Server 中允许的最大精度为 38。但 SQL Server 十进制数据类型未映射到其整个范围内的 .Net 十进制。.Net 十进制类型仅映射到十进制(29,X)范围内的 SQL Server 之一。(来源

这意味着如果您有一个精度高于 29 的小数列并且无论比例如何,您都将无法使用本机 .Net 数据类型。

尝试使用 SqlDecimal 类型。

SQL类型的完整规则


推荐阅读