c# - 保存添加额外小数位

标签 c# .net entity-framework decimal savechanges

我有一个定义为十进制(9,9)的数据库字段。 C# 中的 edmx 模型将此字段映射到精度和小数位数为 9 的十进制变量。

我将数字 5 放入变量中。我可以检查的所有地方都将值显示为 5(在局部变量、实体类实例、数据上下文等中)。

在执行DataContex.SaveChanges()时,该值将转换为“5.000000000”。据我所知, Entity Framework 在尝试保存到数据库之前会向该值添加 9 位小数。这会导致错误,因为该值现在的位数太多。

有谁知道导致这种行为的原因以及如何改变它?

附加信息 - 我首先在 Microsoft SQL 2008 R2 中创建数据库。然后,我从数据库生成 Entity Framework 模型。

最佳答案

如果您确实在数据库中将数据类型定义为 decimal(9,9),那么您就会遇到问题。
根据 Microsoft ,第一个数字是总位数,第二个数字是小数点右边的位数。
因此,您实际上只能在此类字段中以 .123456789 格式存储小于 1 的数字。 如果您需要存储 5 个,则需要不同的格式。

关于c# - 保存添加额外小数位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10178328/

相关文章:

c# - 使用azure API管理重定向到URL

c# - Devenv Commandline Build 不使用 C# 7.2 语言功能

c# - 委托(delegate)和事件之间的关系是什么?

.net - Windows 运行时 : Does it include a logging library?

c# - 使用 Entity Framework Code First 在 PostgreSQL 中存储图像

c# - 只有实现 IAsyncEnumerable 的源才能用于 Entity Framework 异步操作

c# - 如何更改 Fluent NHibernate 对于没有实体的表的默认命名行为?

.net - 如何使用WebDav来匹配dav :href to Outolook Interop href value

c# - 将 IQueryable 转换为 BindingList

entity-framework - 发布到数据库时如何从 Web API 返回标识值