如何使用Azure表存储选择RowKey范围?

joh*_*ner 5 azure azure-table-storage

我想使用PrimaryKey查询我的azure tablestorage,我想检查我的RowKey是否在一个范围内.例如,范围02001至02999

谁能告诉我怎么做到这一点?我理解如何用简单的方式查询PK:

where fooEntiy.PartitionKey == partition
Run Code Online (Sandbox Code Playgroud)

但我不知道如何查询fooEntity.RowKey.

此外,如果我通过指定范围来执行此操作,那么它是否仍将检索该分区的所有条目,然后检查它们是否与范围匹配?

感谢您的意见,

圆子

kni*_*hor 13

您的查询可能如下所示:

where fooEntity.PartitionKey == partionKey
    && fooEntity.RowKey.CompareTo(lowerBoundRowKey) >= 0
    && fooEntity.RowKey.CompareTo(upperBoundRowKey) <= 0
Run Code Online (Sandbox Code Playgroud)

这将返回所有的项目lowerBoundRowKeyupperBoundRowKey包括这些值(如果你不希望它是包容性的,只要使用>和<而非> =和<=).

您不需要进行任何其他过滤.

看起来你已经填充了你在RowKey中存储的带有前导零的数字,这是一件好事,因为这个范围将是一个词法范围,而不是数值范围.

例如,运行此查询lowerBoundKey = 10并且upperBoundKey = 100不会返回RowKey为20的项目.

但是如果用零填充它lowerBoundKey = 00010upperBoundKey = 00100返回一个RowK为00020的项目.