Azure表存储中的PartitionKey和RowKey必须是字符串吗?

ple*_* me 9 azure azure-table-storage

我怀疑是这样,因为抽象类TableServiceEntity具有以下内容:

    public virtual string PartitionKey { get; set; }
    public virtual string RowKey { get; set; }
Run Code Online (Sandbox Code Playgroud)

如果我想要一个DateTime或Double的RowKey怎么办?

Stu*_*art 19

是的,这些都是字符串.

如果您希望RowKey是DateTime或Double,那么您必须使用字符串表示.

有一些常见的模式.对于DateTime,通常会看到使用方便排序的字符串表示DateTime:

  • DateTime.Ticks.ToString( "D19")

要么

  • (DateTime.MaxValue.Ticks - DateTime.Ticks).ToString("d19")

请参阅Steve Marx 撰写的这篇博客文章 - http://blog.smarx.com/posts/using-numbers-as-keys-in-windows-azure

  • 另请注意,有4个被禁止的字符 - \,/,?,#(我认为) - 如果您使用这些字符,那么您将收到"超出范围"类型的错误消息 (9认同)
  • 这是否会利用数据应每天或每小时等进行分区的事实?如果它是一个字符串,如何大于或在查询之间做? (2认同)