我想使用 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 的项目。
关于azure - 如何使用 Azure 表存储选择 RowKey 范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5932766/