5

現在、RavenDB を使用して、Noda Time の Instant クラスを使用して日付を格納するオブジェクトを格納しています。

RavenDb は値を次のように保存します。

"ArrivalTime": { "Ticks": 13507658019037497 },

ただし、オブジェクトを照会すると、常に null であり、UNIX エポック時間の開始時に開始されます。

JsonConvert 属性を使用してみましたが、リーダーは常に Instant 型に対して null 値を返します。また、複数の属性を使用する場合、最初の属性のみを参照します。

RavenDbで野田時間を使用する必要がありますか、それとも通常の日時に固執する必要がありますか?

ありがとう

4

1 に答える 1

2

RavenDB 2.5 の使用

RavenDB 2.5 を使用できる場合は、Noda Time を完全にサポートし、ドメイン エンティティで Noda Time タイプを使用できます。RavenDBには Noda Time 拡張機能が必要です。

RavenDB 2.0 の使用

ドメイン エンティティで Noda Time を使用しない方がよいでしょう。DateTimeOffset代わりに、 、 、などの組み込み型を使用してDateTimeくださいTimeSpan

アプリケーション ロジックでは Noda Time を使用できますが、永続層では使用できません。Noda TimeのメソッドInstant.ToDateTimeOffset()Instant.FromDateTimeOffset()メソッドは非常に便利で、RavenDB は値に対して非常にうまく機能しDateTimeOffsetます。それらは ISO8601 形式で保存され、インデックス作成中に UTC 時間に適切に変換されます。DateTimeOffsetこれは、オフセット変換に関係なく、値のインデックスをクエリできることを意味します。

于 2012-10-21T04:43:11.837 に答える