0

私のAzureストレージテーブルの行キーはGUIDとして設定されています。特定の GUID についてエンティティをクエリできないか、ランダムに発生している可能性があります。しかし、いくつかの GUID では、私が作成したクエリの数では、エンティティは返されませんが、テーブル内のレコードをはっきりと見ることができます。なぜそれが起こっているのか、私にはわかりません。エンティティの作成と GUID を使用したエンティティのフェッチに異なるデータ サービス コンテキストを使用していることが原因である可能性があります。以下は、簡単なコード スニペットです。

TableStorageServiceContext<PersistedAudioRecord> audioRecordServiceContext;
audioRecordServiceContext = new TableStorageServiceContext<PersistedAudioRecord>(TableNames.AudioRecord, cloudStorageAccount.TableEndpoint.ToString(), cloudStorageAccount.Credentials) { IgnoreResourceNotFoundException = true };

return audioRecordServiceContext.QueryableEntities.Where(b => b.RowKey == id).FirstOrDefault();

私はこの問題について頭を悩ませてきましたが、アイデアや提案は大歓迎です。

ありがとう

4

1 に答える 1

2

だけを使用してクエリを実行していることがわかりますRowKey。これにより、完全なテーブル スキャンが発生する可能性があり、テーブル サービスは最大 1000 エンティティ/リクエストのみを返します。テーブル サービスで が検出された場合、Partition Boundary0 エンティティが返される場合があります。データを取得していない場合、継続トークンを取得していることを確認できますか? などのツールを使用して確認できますFiddler

于 2013-08-26T13:25:34.250 に答える