Sto cercando di seminare alcune costanti nel mio DB:Memorizzazione TimeSpan con Entity Framework Codefirst - SqlDbType.Time trabocco
context.Stages.AddOrUpdate(s => s.Name,
new Stage()
{
Name = "Seven",
Span = new TimeSpan(2, 0, 0),
StageId = 7
});
context.Stages.AddOrUpdate(s => s.Name,
new Stage()
{
Name = "Eight",
Span = new TimeSpan(1, 0, 0, 0),
StageId = 8
});
Questo è nel mio Seed (funzione) per EF Codefirst Migrazioni. Non riesce a fase Otto con il seguente:
System.Data.UpdateException: Si è verificato un errore durante l'aggiornamento delle voci. Vedi l'eccezione interna per i dettagli. ---> System.OverflowException: SqlDbType.Time overflow. Valore '1.00: 00: 00' non compreso nell'intervallo. Deve essere compreso tra 00: 00: 00.0000000 e 23: 59: 59.9999999.
Perché non riuscire a memorizzare un intervallo di tempo utilizzando EF? Spero davvero che non ho bisogno di fare un po di conversione stupido time-to-zecche su entrambe le estremità qui ...
Da quando è un intervallo logico limitato a 24 ore? Particolarmente sciocco come la classe 'TimeSpan' [supporta più giorni] (https://msdn.microsoft.com/en-us/library/85ydwftb%28v=vs.110%29.aspx). – Diederik
@Diederik, da nessuna parte nella risposta si dice che è 'TimeSpan' che è limitato a 24 ore, è la colonna del database mappato (' Time') che è limitata.Si tratta di una mappatura errata, non di una limitazione di 'TimeSpan' (che supporta sicuramente più di 1 giorno). – haim770
Esattamente. La mappatura del tipo di DB è semplicemente sbagliata, dato che i dati di "TimeSpan" non sono in un "db" di tipo db. Sembra un bug. – Diederik