2012-04-24 58 views
13

我正在使用數據庫優先方法處理asp.net mvc 3 Web應用程序。實體框架將float數據類型映射爲雙精度型

我有一個叫Results表包含float類型的兩列(min & max),但是當我使用實體框架來映射現有的數據庫爲模型類,那麼EF創建一個類Resultsmin & max的數據類型字段爲double而不是現有數據庫中指定的float

那麼爲什麼會發生這種行爲?會導致任何問題嗎?

回答

16

這是正常行爲,按照MSDN

即使SQL服務器的數據類型real映射到double,即使float肯定是夠了那裏。

但是這裏的類型名稱很混亂。實際上,float (t-SQL)double (.Net)相同:精度爲15位,負1.79769313486232e308的範圍爲正1.79769313486232e308。

1

我不知道,如果你的問題是相同的,以這樣或不:

http://forums.asp.net/p/1606916/4100117.aspx

,但似乎這應該引起任何問題不會。你可能會失去精度,你的數字會從雙精度到浮點數,但它應該仍然有效,除非你需要額外的數字。

+0

但爲什麼我會丟失數字,如果我改變雙重fload ,,我試着插入像1.123456789,它被正確保存在數據庫中... – 2012-04-24 13:22:22

+0

你可能會失去精度,因爲浮點數的精度爲7 ,而雙精度爲15-16。你不太可能需要這種精度,除非你需要進行某種數學計算。 http://msdn.microsoft.com/en-us/library/b1e65aza(v=vs.100).aspx http://msdn.microsoft.com/en-us/library/678hzkk9(v=vs .100).aspx 這2個鏈接用於float和double數據類型。 – 2012-04-24 13:27:34

相關問題