【发布时间】:2016-04-22 16:28:23
【问题描述】:
我有一个名为Customer 的集合,每个条目都有一个名为Number 的属性。以下是全选命令的内容:
[
{
"Number": "K1",
"Label": "Test1"
},
{
"Number": "T1",
"Label": "Test2"
}
]
我使用 Azure 门户对此集合触发以下查询:
SELECT * FROM c WHERE STARTSWITH(c.Number, 'K')
这给了我正确的结果:
[
{
"Number": "K1",
"Label": "Test1"
}
]
但是当我使用 DocumentDB NuGet 包在 C# 中执行此操作时:
var options = new FeedOptions();
var query = "SELECT * FROM c WHERE STARTSWITH(c.Number, 'K')";
var items = client.CreateDocumentQuery<Customer>(uri, options, query).ToList()
然后它将每次检索所有(在本例中为 2 个)项目。
似乎CreateDocumentQuery 完全忽略了这个声明。
编辑
查询的 ActivityId 是7f473650-f125-4b6b-9d4c-2d520deceebd。
【问题讨论】:
-
一些额外的细节将有助于确定根本原因。您能否通过运行 Fiddler 检查通过网络发送的查询文本是什么?或者,如果您可以粘贴一个完整的示例,或共享查询的 ActivityID,那会有所帮助。
-
@AravindRamachandran 我在帖子中添加了活动。我无法检查 Fiddler,因为我无法让 Fiddler 与 https 一起正常工作。我在那里看不到任何网址。
标签: c# .net azure azure-cosmosdb