【发布时间】:2012-04-16 16:52:56
【问题描述】:
我有一个定义为十进制(9,9)的数据库字段。 C# 中的 edmx 模型将此字段映射到精度和小数位数为 9 的十进制变量。
我将数字 5 放入变量中。我可以检查的所有地方都将值显示为 5(在局部变量、实体类实例、数据上下文等中)。
在DataContex.SaveChanges() 时,该值转换为“5.000000000”。尽我所能告诉实体框架在尝试保存到数据库之前将值添加 9 个小数位。这会导致错误,因为该值现在的位数太多。
有谁知道导致这种行为的原因以及如何改变它?
附加信息 - 我首先在 Microsoft SQL 2008 R2 中创建我的数据库。然后我从数据库中生成了实体框架模型。
【问题讨论】:
-
您是否将 5 保存为字符串?还是作为小数?还是整数?
-
在程序中我输入了一个值 5.0。检查变量会在 Visual Studio 中显示“十进制”值 5。
-
@abatishchev 如果你说的是数字文字,那么 5.0 是双精度的,但 5.0m 是十进制的。
-
@phoog:感谢指正。你是对的。
标签: c# .net entity-framework decimal savechanges