Ho un problema con Dapper, non so come risolvere questo problema:TimeSpan zecche ottenere uno dopo salvataggio
Ho un Poco come questo:
public class Test
{
public long Id { get; set; }
public TimeSpan? Time { get; set; }
}
Il Tempo è un campo MySQL 'TIME'. Se carico una riga con Dapper con un campo Time con 1000 ticks ad esempio, e salvo questo Poco senza cambiare nulla, ricarico nuovamente la stessa riga, il campo Time ora è 1001 Ticks.
Cosa sto sbagliando?
EDIT:
Come posso caricare la mia fila:
var testobj = Db.Query<Test>("select * from Test where Id = @id", new {id = Id});
Come salvarlo:
Db.Execute("replace into Test values (@Id,@Time)", testObj);
EDIT 2:
Un oggetto periodo prima di salvare:
{15:22:24}
Days: 0
Hours: 15
Milliseconds: 0
Minutes: 22
Seconds: 24
Ticks: 553440000000
TotalDays: 0.64055555555555554
TotalHours: 15.373333333333333
TotalMilliseconds: 55344000.0
TotalMinutes: 922.4
TotalSeconds: 55344.0
e dopo Risparmi:
{15:22:25}
Days: 0
Hours: 15
Milliseconds: 0
Minutes: 22
Seconds: 25
Ticks: 553450000000
TotalDays: 0.64056712962962958
TotalHours: 15.37361111111111
TotalMilliseconds: 55345000.0
TotalMinutes: 922.41666666666674
TotalSeconds: 55345.0
Si può vedere che le zecche 553.440.000.000 e diventare 553450000000
EDIT 3:
Io uso Hans punta con la mia classe di test in questo modo:
public class Test
{
public long Id { get; set; }
private TimeSpan? _time;
public TimeSpan? Time
{
get
{
if (_time.HasValue)
return TimeSpan.FromTicks((long)Math.Floor(_time.Value.Ticks/100000000d) * 100000000);
return _time;
}
set { _time = value; }
}
}
e funziona, ma è ancora strano
Come si carica l'ora? –
@ FᴀʀʜᴀɴAɴᴀᴍ Ho aggiornato la mia domanda – Baptiste
scusa non capisco, la riga è caricata con Id = 1 e Tempo = 1000 tick, salvo questa riga, la ricarica, e ora Time = 1001 Ticks – Baptiste