PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

NHibernate Postgresql DateTime to Time Conversion

J'ai compris !

Apparemment, la feuille de conversion que j'ai liée to est erroné ou obsolète. Il s'avère qu'un objet System.TimeSpan est ce dont Npgsql a besoin pour effectuer une conversion appropriée en un objet "temps" Postgresql. Il me semble étrange qu'ils essaient de convertir quelque chose qui représente une différence entre deux temps en ce que nous pensons comme HH:mm:ss mais c'est comme ça.

Plutôt que de changer le type de ma propriété RunTime de System.DateTime à System.TimeSpan, j'ai plutôt créé un IUserType personnalisé et j'ai remplacé NullSafeSet pour ressembler à

public override void NullSafeSet(IDbCommand cmd, object value, int index)
{
    var obj = (DateTime)value;

    ((IDbDataParameter) cmd.Parameters[index]).Value = new TimeSpan(0, obj.Hour, obj.Minute, obj.Second);
}