2012-10-20 9 views
5

Attualmente sto utilizzando RavenDB per archiviare un oggetto che utilizza la classe Instant di Noda Time per archiviare le date.Valore dell'istanza di tempo Noda non deserializing correttamente

negozi RavenDB il valore come

"ArrivalTime": { "zecche": 13507658019037497 },

ma quando interrogazione l'oggetto è sempre nullo e comincia all'inizio di UNIX tempo dell'epoca.

Ho provato a utilizzare l'attributo JsonConvert, ma il lettore restituisce sempre un valore nullo per il tipo Instant. Inoltre, se uso più di un attributo, si riferisce solo al primo.

Dovrei utilizzare la durata della noda con RavenDb o semplicemente attenermi al normale datetime?

grazie

risposta

2

Uso RavenDB 2,5

Se siete in grado di utilizzare RavenDB 2.5, allora si può avere il pieno sostegno Noda tempo e utilizzare i tipi di Noda tempo nella vostra entità di dominio. È necessario il Noda Time extensions for RavenDB.

Utilizzando RavenDB 2.0

si sono probabilmente meglio non utilizzando Noda tempo nella vostra entità di dominio. Utilizzare invece i tipi predefiniti come DateTimeOffset, DateTime e TimeSpan.

È possibile utilizzare Noda Time nella logica dell'applicazione, ma non nel livello di persistenza. I metodi Instant.ToDateTimeOffset() e Instant.FromDateTimeOffset() in Noda Time sono molto utili e RavenDB funziona piuttosto bene con i valori DateTimeOffset. Li memorizza nel formato ISO8601 e converte correttamente in ora UTC durante l'indicizzazione. Ciò significa che è possibile interrogare un indice di valori DateTimeOffset indipendentemente dalla conversione di offset.

+0

Questo è un ottimo consiglio grazie! –

Problemi correlati