0

ばかげた質問のように聞こえるかもしれませんが、Windows Azure テーブルからデータを "選択" したいと考えています。私は次のことを試しましたが、うまくいきました:

from question in _statusTable.GetAll()
                       where status.RowKey.StartsWith(name)

私はそれから試しました

from question in _statusTable.GetAll()
                       where status.Description.StartsWith(name)

これは私に何も与えませんでした。RowKey または PartitionKey の一部ではない行に対してクエリを実行できるかどうか、またはその方法を誰かに説明してもらえますか。

4

2 に答える 2

3

任意のプロパティに対してクエリを実行できますが、サポートされているクエリの種類は限られています。たとえば、サポートされStartsWithていません。また、PartitionKey と RowKey でクエリを実行していない場合は、理解しておくべき非常に重要なパフォーマンスの問題がいくつかあります。また、ContinuationToken について常に注意する必要があります。ほぼすべてのクエリ結果にこれらが含まれる可能性があります。

REST API を見ると、サポートされているクエリの種類を確認できます: http://msdn.microsoft.com/en-us/library/dd894031.aspx - かなり制限されています (ただし、結果としては迅速です)。

  • 同等
  • より大きい
  • GreaterThanOrEqual
  • 未満
  • LessThanOrEqual
  • 等しくない

さらに行う必要がある場合は、次のようにします。

  • あなたは次のようなことを模倣することができStartsWith("Fred")ますGreaterThanOrEqualTo("Fred") and LessThan("Free")
  • またはクライアント側のフィルタリングが機能しますが、それはストレージからすべての行を引き戻すことを意味します。これは大量のデータになる可能性があり、計算とトランザクションのコストが高くなる可能性があります!
于 2011-05-08T21:07:05.120 に答える