我正在使用数据库优先方法开发asp.net mvc 3 Web应用程序。
我有一个名为Results
的表,其中包含两个类型为min & max
的列(float
),但是当我使用实体框架将现有数据库映射到模型类时,则EF创建一个类Results
,其min & max
字段的数据类型为double
,而不是现有数据库中指定的float
。
那为什么会发生这种情况呢?它会引起任何问题吗?
答案 0 :(得分:18)
根据MSDN,这是正常行为。
即使SQL服务器的real
数据类型也会映射到double
,即使float
肯定就足够了。
但这里的类型名称非常令人困惑。实际上float
(t-SQL)与double
(.Net)相同:精度为15位,负范围为1.79769313486232e308,为正数1.79769313486232e308。
答案 1 :(得分:1)
我不确定您的问题是否与此相同:
http://forums.asp.net/p/1606916/4100117.aspx
但似乎这不应该导致任何问题。你的数字从一个double变为float,你可能会失去精确度,但除非你需要额外的数字,否则它仍然可以工作。