5

PrimaryKey を使用して Azure テーブルストレージにクエリを実行したいのですが、RowKey が範囲内にあることを確認したいと考えています。たとえば、02001 から 02999 の範囲

誰かが私にこれを行う方法を教えてもらえますか? 簡単な方法で PK をクエリする方法を理解しています。

where fooEntiy.PartitionKey == partition

しかし、fooEntity.RowKey を照会する方法がわかりません。

また、範囲を指定してこれを行うと、そのパーティションのすべてのエントリが取得され、それらが範囲に一致するかどうかが確認されますか?

アドバイスありがとうございます。

麻理子

4

2 に答える 2

13

クエリは次のようになります。

where fooEntity.PartitionKey == partionKey
    && fooEntity.RowKey.CompareTo(lowerBoundRowKey) >= 0
    && fooEntity.RowKey.CompareTo(upperBoundRowKey) <= 0

lowerBoundRowKeyこれにより、これらの値を含むと の間のすべての項目が返されupperBoundRowKeyます (包括的にしたくない場合は、>= と <= ではなく > と < を使用してください)。

これ以外のフィルタリングを行う必要はありません。

RowKey に保存している数値に先行ゼロを既に埋め込んでいるようです。これは、この範囲が数値範囲ではなく字句範囲になるため、良いことです。

たとえば、このクエリを実行するlowerBoundKey = 10upperBoundKey = 100、RowKey が 20 のアイテムは返されません。

lowerBoundKey = 00010ただし、ゼロでパディングupperBoundKey = 00100すると、RowKey が 00020 のアイテムが返されます。

于 2011-05-09T05:53:43.480 に答える
2

これにより、指定された PartitionKey で指定された範囲の RowKey 値を使用するエンティティが表示されます。

" PartitionKey eq 'your partitionKey value' and (RowKey gt '02001' and RowKey lt '02999') "

詳細については、こちらこちらをご覧ください。お役に立てれば。

于 2011-05-09T05:52:05.897 に答える