gpt4 book ai didi

azure - 查询 Azure 表存储中的空值

转载 作者:行者123 更新时间:2023-12-03 11:08:32 24 4
gpt4 key购买 nike

有谁知道查询 azure 表存储中空值的正确方法。从我读到的内容来看,这是可能的(尽管有一个错误阻止了它在开发存储上的实现)。但是,当我在实时云存储上执行此操作时,我不断收到以下错误:

One of the request inputs is not valid.

这是我整理的 LINQ 查询的简化版本。

var query = from fooBar in fooBarSVC.CreateQuery<FooBar>("FooBars")
where fooBar.PartitionKey == kPartitionID
&& fooBar.Code == kfooBarCode
&& fooBar.Effective_Date <= kFooBarDate.ToUniversalTime()
&& (fooBar.Termination_Date > kFooBarDate.ToUniversalTime() || fooBar.Termination_Date == null)
select fooBar;

如果我运行查询而不检查 null,它工作正常。我知道一个可能的解决方案是对该查询带回的集合运行第二个查询。如果需要的话,我不介意这样做,但想知道我是否可以先让这种方法发挥作用。

有人看出我做错了什么吗?

最佳答案

问题在于,由于 Azure 表存储没有架构,因此 null 列实际上不存在。这就是您的查询无效的原因。表存储中不存在空列之类的东西。如果确实需要,您可以执行诸如存储空字符串之类的操作。事实上,这里的根本问题是,Azure 表存储实际上并不是为分区键和行键以外的任何列进行查询而构建的。每次对这些非标准列之一进行查询时,您都在进行表扫描。如果您开始获取大量数据,查询超时率将会非常高。我建议为这些类型的查询设置手动索引。例如,您可以将相同的数据存储在同一个表中,但 Row 键的值不同。最终,如果您的应用程序没有出现疯狂的高使用率,我只会使用 SQL Azure,因为它对于您正在执行的查询类型会更加灵活。

更新:Azure 有一个关于表存储设计的很棒的指南,我建议您阅读。 http://azure.microsoft.com/en-us/documentation/articles/storage-table-design-guide/

关于azure - 查询 Azure 表存储中的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4228460/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com