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