【问题标题】:Noda Time Instance value not deserializing correctlyNoda Time Instance 值未正确反序列化
【发布时间】:2012-10-20 22:58:49
【问题描述】:

我目前正在使用 RavenDB 存储一个对象,该对象使用 Noda Time 的 Instant 类来存储日期。

RavenDb 将值存储为

“到达时间”:{ “蜱”:13507658019037497 },

但当查询对象时,它始终为 null,并从 unix 纪元时间开始。

我尝试过使用 JsonConvert 属性,但读取器总是为 Instant 类型返回空值。此外,如果我使用多个属性,它只指第一个。

我应该在 RavenDb 中使用 noda 时间还是只使用常规日期时间?

谢谢

【问题讨论】:

    标签: json.net ravendb nodatime


    【解决方案1】:

    使用 RavenDB 2.5

    如果您能够使用 RavenDB 2.5,那么您可以拥有完整的 Noda Time 支持并在您的域实体中使用 Noda Time 类型。您将需要Noda Time extensions for RavenDB

    使用 RavenDB 2.0

    在你的域实体中使用 Noda Time 可能会更好。而是使用诸如DateTimeOffsetDateTimeTimeSpan 等内置类型。

    您可以在应用程序逻辑中使用 Noda Time,但不能在持久层中使用。 Noda Time 中的Instant.ToDateTimeOffset()Instant.FromDateTimeOffset() 方法非常有用,RavenDB 与DateTimeOffset 值配合得很好。它以 ISO8601 格式存储它们,并在索引期间正确转换为 UTC 时间。这意味着您可以查询DateTimeOffset 值的索引,而无需考虑偏移转换。

    【讨论】:

      猜你喜欢
      • 2014-01-29
      • 1970-01-01
      • 2022-01-02
      • 2022-01-10
      • 1970-01-01
      • 2021-03-25
      • 1970-01-01
      • 2018-09-29
      • 1970-01-01
      相关资源
      最近更新 更多