Entity Framework сопоставляет тип данных float в двойном
Я работаю над веб-приложением asp.net mvc 3, используя подход, основанный на базе данных.
У меня есть таблица с именем Results
, которая содержит два столбца (min & max
) типа float
, но когда я использую Entity Framework для сопоставления существующей базы данных с классами модели, тогда EF создает класс Results
с типом данных полей min & max
как double
вместо float
, как указано в базе данных exsiting.
Так почему же такое поведение происходит? Это вызовет проблемы?
Ответы
Ответ 1
Это нормальное поведение, согласно MSDN.
Даже тип данных SQL-server real
сопоставляется с double
, хотя float
определенно будет достаточно.
Но имена типов здесь очень запутывают. Фактически float
(t-SQL) совпадает с double
(.Net): точность 15 цифр и диапазон отрицательных 1.79769313486232e308 к положительному 1.79769313486232e308.
Ответ 2
Я не уверен, что ваша проблема идентична этому или нет:
http://forums.asp.net/p/1606916/4100117.aspx
Но похоже, что это не должно вызывать никаких проблем. Вы можете потерять точность с вашими номерами, идущими от двойного до плавающего, но он все равно должен работать, если вам не нужны дополнительные цифры.