我可以查询 Windows Azure 表存储行中的任何属性吗?



对不起,如果这听起来像是一个相当愚蠢的问题,但我想对Windows Azure表中的数据进行"选择"。我尝试了以下方法,它奏效了:

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

然后我尝试了

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

这个什么也没给我。谁能向我解释我是否可以或如何查询不属于 RowKey 或分区键的行。

您可以查询任何属性,但支持的查询类型有限 - 例如 不支持StartsWith。此外,如果您没有在 PartitionKey 和 RowKey 上进行查询,那么有一些非常重要的性能问题需要了解 - 并且您始终需要了解 ContinuationToken 的 - 几乎任何查询结果都可以包含这些问题。

您可以通过查看 REST API 看到支持的查询类型: http://msdn.microsoft.com/en-us/library/dd894031.aspx - 它非常有限(但因此速度很快):

  • 平等
  • 大于
  • 大于或等于
  • 小于
  • 小于或等于
  • 不等于

如果您需要执行更多操作,请:

  • 您可以通过执行GreaterThanOrEqualTo("Fred") and LessThan("Free")来模仿StartsWith("Fred")之类的事情
  • 或者客户端过滤将起作用 - 但这意味着从存储中提取所有行 - 这可能是大量数据,并且可能在计算和事务上昂贵!

GetAll() 是做什么的?WA 表不支持 StartsWith,因此我假设 GetAll 将所有数据提取到本地,因此您的查询是通过内存中的对象完成的。如果是这样,这与Windows Azure无关,所以我会看看你的数据是否看起来像你期望的那样。

相关内容

  • 没有找到相关文章

最新更新