【问题标题】: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 可能会更好。而是使用诸如DateTimeOffset、DateTime 和TimeSpan 等内置类型。

    您可以在应用程序逻辑中使用 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
      相关资源
      最近更新 更多