我有一个定义为十进制(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/