我的azure存储表的Row键被设置为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();
我一直在讨论这个问题,任何想法或建议都深受赞赏。
由于
答案 0 :(得分:2)
我发现您只使用RowKey
进行查询。这可能导致全表扫描,表服务最多只返回1000个实体/请求。如果表服务遇到Partition Boundary
,则它可能返回0个实体。你可以检查一下,当你没有得到数据时,你会得到一个延续令牌吗?您可以使用Fiddler
等工具进行检查。