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 - 它非常有限(但结果很快):

  • 平等的
  • 比...更棒
  • 大于或等于
  • 少于
  • 小于或等于
  • 不相等

如果您需要做更多,那么:

  • 你可以模仿一些事情,比如StartsWith("Fred")做一个GreaterThanOrEqualTo("Fred") and LessThan("Free")
  • 或客户端过滤将起作用-但这意味着从存储中拉回所有行-这可能是大量数据,并且在计算和事务上可能很昂贵!
于 2011-05-08T21:07:05.120 回答
0

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

于 2011-05-08T20:21:34.987 回答