我目前正在使用ravendb存储一个使用Noda Time的Instant类存储日期的对象。
ravendb将值存储为
"到达时间":{ " tick":13507658019037497 },
但是,当查询对象时,它始终为空,并从Unix Epoch时间开始。
我尝试使用JSONCONVERT属性,但是读者总是返回即时类型的无效值。另外,如果我使用多个属性,则仅指一个。
我应该与ravendb一起使用NODA时间,还是只是坚持使用常规日期?
谢谢
使用ravendb 2.5
如果您能够使用Ravendb 2.5,则可以拥有完整的NODA时间支持,并在域实体中使用NODA时间类型。您将需要Ravendb的NODA时间延长。
使用Ravendb 2.0
您可能会在域实体中使用NODA时间来不是。而是使用内置类型,例如DateTimeOffset
,DateTime
和TimeSpan
。
您可以在应用程序逻辑中使用NODA时间,但不能在持久性层中使用。NODA时间中的Instant.ToDateTimeOffset()
和Instant.FromDateTimeOffset()
方法非常有用,Ravendb在DateTimeOffset
值中效果很好。它以ISO8601格式存储它们,并在索引期间正确转换为UTC时间。这意味着您可以在不考虑偏移转换的情况下查询DateTimeOffset
值的索引。