2012-10-20 9 views
5

Obecnie używam RavenDB do przechowywania obiektu, który używa klasy Instant klasy Noda do przechowywania dat.Wartość instancji czasu Noda niepoprawne deserializowanie

sklepy RavenDb wartość jako

„ArrivalTime”: { „Kleszcze”: 13507658019037497 }

ale gdy kwerenda obiekt zawsze jest nieważna i rozpoczyna się na początku unix czasu epoki.

Próbowałem użyć atrybutu JsonConvert, ale czytnik zawsze zwraca wartość pustą dla typu Instant. Również jeśli używam więcej niż jednego atrybutu, odnosi się on tylko do pierwszego.

Czy powinienem używać czasu noda z RavenDb lub po prostu trzymać się zwykłej daty?

dzięki

Odpowiedz

2

Korzystanie RavenDB 2.5

Jeśli jesteś w stanie wykorzystać RavenDB 2.5, wówczas można mieć pełne wsparcie Noda czasu i używać typów Noda czasu w jednostkach domen. Będziesz potrzebował Noda Time extensions for RavenDB.

Korzystanie RavenDB 2.0

Jesteś prawdopodobnie lepiej nie użyciu Noda czasu w jednostkach domen. Zamiast tego należy użyć wbudowanych typów, takich jak DateTimeOffset, DateTime i TimeSpan.

Możesz użyć czasu Noda w logice aplikacji, ale nie w warstwie trwałości. Metody i w czasie Noda są bardzo przydatne, a RavenDB działa całkiem dobrze z wartościami DateTimeOffset. Przechowuje je w formacie ISO8601 i podczas indeksowania prawidłowo konwertuje na czas UTC. Oznacza to, że możesz wyszukiwać wartości indeksu o wartościach DateTimeOffset bez względu na konwersję przesunięcia.

+0

To świetna rada, dziękuję! –

Powiązane problemy