我想使用 PrimaryKey 查询我的 azure 表存储,并且我想检查我的 RowKey 是否在一个范围内。例如范围 02001 到 02999
有人能告诉我我该怎么做吗?我了解如何通过简单的方式查询 PK:
where fooEntiy.PartitionKey == partition
但我不知道如何查询 fooEntity.RowKey。
此外,如果我通过指定范围来执行此操作,那么它是否仍会检索该分区的所有条目,然后检查它们是否与范围匹配?
感谢您的意见,
麻理子
我想使用 PrimaryKey 查询我的 azure 表存储,并且我想检查我的 RowKey 是否在一个范围内。例如范围 02001 到 02999
有人能告诉我我该怎么做吗?我了解如何通过简单的方式查询 PK:
where fooEntiy.PartitionKey == partition
但我不知道如何查询 fooEntity.RowKey。
此外,如果我通过指定范围来执行此操作,那么它是否仍会检索该分区的所有条目,然后检查它们是否与范围匹配?
感谢您的意见,
麻理子
您的查询可能如下所示:
where fooEntity.PartitionKey == partionKey
&& fooEntity.RowKey.CompareTo(lowerBoundRowKey) >= 0
&& fooEntity.RowKey.CompareTo(upperBoundRowKey) <= 0
这应该返回包含这些值的所有项目lowerBoundRowKey
(upperBoundRowKey
如果您不希望它具有包容性,只需使用 > 和 < 而不是 >= 和 <=)。
除此以外,您无需进行任何其他过滤。
看起来您已经用前导零填充了存储在 RowKey 中的数字,这是一件好事,因为该范围将是词汇范围,而不是数字范围。
lowerBoundKey = 10
例如,使用并且upperBoundKey = 100
不会返回 RowKey 为 20 的项目运行此查询。
但是,如果你用零填充它,lowerBoundKey = 00010
将upperBoundKey = 00100
返回一个 RowKey 为 00020 的项目。