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

发布于 2024-11-05 18:44:44 字数 415 浏览 0 评论 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 的行。

Sorry if this sounds like a rather dumb question but I would like to do a "select" on data from a Windows Azure table. I tried the following and it worked:

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

I then tried

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

This one gave me nothing. Can anyone explain to me if or how I can query on rows that are not part of the RowKey or PartitionKey.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

み格子的夏天 2024-11-12 18:44:44

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

您可以通过查看 REST API 来了解支持的查询类型: http:// msdn.microsoft.com/en-us/library/dd894031.aspx - 它非常有限(但结果很快):

  • Equal
  • GreaterThan
  • GreaterThanOrEqual
  • LessThan
  • LessThanOrEqual
  • NotEqual

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

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

You can query on any property, but the types of query supported are limited - e.g. StartsWith isn't supported. Also if you aren't querying on PartitionKey and RowKey, then there are some very important performance issues to understand - and you always need to be aware of ContinuationToken's - almost any query result can contain these.

You can see the sorts of queries supported by looking at the REST API: http://msdn.microsoft.com/en-us/library/dd894031.aspx - it's pretty limited (but quick as a result):

  • Equal
  • GreaterThan
  • GreaterThanOrEqual
  • LessThan
  • LessThanOrEqual
  • NotEqual

If you need to do more, then:

  • you can mimic things like StartsWith("Fred") by doing a GreaterThanOrEqualTo("Fred") and LessThan("Free")
  • or client side filtering will work - but that means pulling back all the rows from the storage - which could be a lot of data and which could be computationally and transactionally expensive!
眼眸里的那抹悲凉 2024-11-12 18:44:44

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

What does GetAll() do? StartsWith isn't supported by WA tables, so I'm assuming GetAll pulls all the data local, and so your query is done over objects in memory. If so, this has nothing to do with Windows Azure, so I'd take a look at whether your data looks like you expect it to.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文