Time и Nhibernate

Если не работает на Android 3.1, попробуйте исправить AndroidManifest.xml :

android:hardwareAccelerated="false"
6
задан Chen Kinnrot 3 June 2009 в 17:15
поделиться

2 ответа

NHibernate поддерживает DateTime, Ticks, TimeSpan и Timestamp . Убедитесь, что вы явно указываете тип в элементе отображения, поскольку разные типы времени имеют разную семантику, поэтому предположения NHibernate могут быть неверными.

Если у вас есть и по-прежнему возникают проблемы, измените свой пост, включив в него соответствующие части вашего объекта, файла сопоставления и реальной проблемы, с которой вы столкнулись.

Изменить:

Например, со следующим классом для TimeSpan :

public class MyClass
{
    // Other properties
    // ...
    // ...
    public virtual TimeSpan MyTimeProperty { get; set; }
}

И файлом сопоставления:

<!-- other properties -->
<property name="MyTimeProperty" type="TimeSpan" /> <!-- Note: NH expects the DB type to be DbType.Int64 -->

Вы указываете, что пытаетесь отобразить TimeSpan («nhibenate не знает, как преобразовать поле времени из db в временной интервал, только строка»). Если это правильное соответствие типов между .NET ( typeof TimeSpan ) и базой данных ( DbType. Int64 ), NH должен делать это автоматически (т.е. вам не нужно указывать type = "TimeSpan" ). Так что, если он не работает, я подозреваю, что проблема в том, как у вас все настроено. Это может быть полезно, если вы разместите объявление свойства / поля с полной подписью, строку для этого свойства из вашего файла сопоставления и определение столбца из базы данных.

7
ответ дан 10 December 2019 в 02:52
поделиться

Кроме того, убедитесь, что вы используете значения NULL для DateTimes, которые могут иметь значение NULL в базе данных.

DateTime? вместо DateTime.

Если нет, NHibernate попытается инициализировать вашу дату значением по умолчанию, которое, вероятно, не то, что вам нужно.

2
ответ дан 10 December 2019 в 02:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: