Azure表存储中的TimeSpan属性

Kai*_*i G 6 .net azure azure-table-storage

我有一个实体,其中包含TimeSpan我想要保存在Azure表存储中的属性.当我尝试保存实体时,我收到错误:

无法转换为不支持的类型'TimeSpan'

有没有办法进行自动转换或其他方式支持TimeSpan

Jam*_*See 4

我将 TimeSpan 作为刻度存储在 int 或 bigint 字段中并进行转换。您还可以将其存储为 varchar。我更喜欢刻度,因为如果需要,您可以在数据库中对其进行数学运算,并且它使范围比较更容易。如果您使用实体框架,则可以声明一个未映射的属性,该属性从数据库友好的属性获取和设置 TimeSpan。

查看Azure 表中的实体。其中一部分描述了如何从 Azure 表存储中排除属性,这应该使我对 EF 提出的建议也适用于 ATS。

  • @JamieSee - 我应该详细阐述这个解释。我们使用刻度来根据偏移量计算日期时间(例如 someDateTime.AddTicks(-ticks))。在我们的例子中与时区无关。我们想知道我们存储的某个日期时间中 15 分钟前的情况。当您未对存储的 UTC 时间进行标准化时,这会导致问题。当我对答案投赞成票时,这更像是一个旁白。据我所见,大多数人最终使用时间跨度来计算日期时间...... (2认同)