ef4 poco double/float dbtype mapping

У меня есть база данных с несколькими полями типа float/double, я решил использовать EF4.1 для своего DAL/ORM, но у меня возникают проблемы при чтении / сохранении данных в поля его типа. Модели нет, просто используется построитель моделей для настройки сущностей.

Сначала возникла проблема с округлением, я думаю, что она типична для математики с плавающей запятой, поэтому, поскольку вся точность уже была установлена ​​как 2 десятичных знака, я переключился на использование десятичного типа на стороне C# (EF), но теперь, когда я пытаюсь получить сущность, я получаю исключение, говоря, что у меня проблемы.

Свойство 'xxxkg' в 'YYY' не может быть установлено в значение 'Double'. Вы должны установить для этого свойства ненулевое значение типа "Десятичное число".

xxxkg является float null в базе данных, и значение 10 в конкретном случае, и в классе это

public decimal? xxxkg { get; set; }

Вопрос в том, как работать с переменными типа float/double в dbtype с помощью EF4 (poco)?

1 ответ

Вы не можете определить свое свойство как десятичное, если оно равно удвоенному в базе данных. EF не вводит преобразование (и не позволяет вам определять свое собственное), и двойное значение не может быть присвоено десятичной переменной, поэтому заполнение вашего класса из прочитанной записи не удастся. Вы должны использовать двойной.

Другие вопросы по тегам