Хранение double.MinValue с Nhibernate на sqlite - PullRequest
1 голос
/ 26 августа 2009

Я использую nhibernate для своей персистентности ИЛИ и сохраняю список двойников в таблицу, используя следующее отображение (где список встроен в другой класс).

<list name="Values" access="field" table="Values_double" >
  <key column="variable_id"/>
  <index column="no_data_values_list_index"/>
  <element column="value"  type="System.Double"/>
</list>

Это прекрасно работает, за исключением случаев, когда я пытаюсь сохранить double.MinValue или double.MaxValue. Я получаю ошибку при перезагрузке из моей БД говорят:

System.OverflowException: значение было слишком большим или слишком маленьким для десятичного числа.

Что, по-видимому, связано с тем, что NHibernate хранит двойные значения как NUMERIC в моей базе данных sqlite dBase. Обратное обращение, похоже, обанкротилось. Любые предложения приветствуются.

Привет, Мартейн

Ответы [ 2 ]

1 голос
/ 26 августа 2009

В конце концов, я решил эту проблему, введя другой пользовательский IUserType для этой простой задачи: (

0 голосов
/ 26 августа 2009

У меня нет опыта работы с SQLite, но вы можете переопределить выбор типа данных SQL NHibernate, используя атрибут sql-type в отображении. Это может помочь, если NUMERIC не подходит для данного обстоятельства.

Например:

<property name="Foo" type="String">
    <column name="foo" length="64" not-null="true" sql-type="text"/>
</property>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...