Asp.net mvc 3 实体框架将float数据类型映射为double
我正在使用数据库优先的方法开发一个asp.NETMVC3Web应用程序 我有一个名为Asp.net mvc 3 实体框架将float数据类型映射为double,asp.net-mvc-3,entity-framework,Asp.net Mvc 3,Entity Framework,我正在使用数据库优先的方法开发一个asp.NETMVC3Web应用程序 我有一个名为Results的表,其中包含两列float类型的(min&max),但是当我使用实体框架将现有数据库映射到模型类中时,然后EF创建一个类Results,其中min&max字段的数据类型为double,而不是现有数据库中指定的float 那么,为什么会发生这种行为?它会导致任何问题吗?我不确定您的问题是否与此相同: 但这似乎不应该引起任何问题。如果数字从双精度变为浮点数,则可能会失去精度,但除非需要额外的数字,否
Results
的表,其中包含两列float
类型的(min&max
),但是当我使用实体框架将现有数据库映射到模型类中时,然后EF创建一个类Results
,其中min&max
字段的数据类型为double
,而不是现有数据库中指定的float
那么,为什么会发生这种行为?它会导致任何问题吗?我不确定您的问题是否与此相同:
但这似乎不应该引起任何问题。如果数字从双精度变为浮点数,则可能会失去精度,但除非需要额外的数字,否则它仍然可以工作。根据,这是正常行为 即使SQL server的
real
数据类型也映射到double
,即使float
肯定足够了
但是这里的类型名称非常混乱。事实上与之相同:精度为15位,范围为负1.79769313486232e308到正1.79769313486232e308。但如果将双精度更改为fload,为什么会丢失数字,,我尝试插入类似于1.123456789的内容,它被正确地保存在数据库中……您可能会丢失精度,因为浮点的精度为7,而双精度的精度为15-16。除非你在需要精度的地方做一些数学计算,否则你不太可能需要这种精度。这两个链接用于float和double数据类型。