[英]Error when converting working CosmosDB Query to C# code
我有一個簡單的 CosmosDB 查詢,其工作方式如下
SELECT c.variantId
FROM c IN jongel.BasicData.base.sales.variants
WHERE ARRAY_CONTAINS(c.globalTradeItemNumber.globalTradeItemNumberType, {"GTIN":"05662570363012"}, true)
返回預期值。
然后我把它放到我的 C# 代碼中,如下所示
FeedIterator setIterator = itemContainer.GetItemQueryStreamIterator(
$"SELECT c.variantId " +
$"FROM c IN jongel.BasicData.base.sales.variants " +
$"WHERE ARRAY_CONTAINS(c.globalTradeItemNumber.globalTradeItemNumberType, {{\"GTIN\":\"{barCode}\"}}, true)",
requestOptions: new QueryRequestOptions()
{
PartitionKey = new PartitionKey("XXX"),
MaxConcurrency = 1,
MaxItemCount = 1
});
但這不會返回任何結果,所以我假設我在轉義 {} 和 " 的字符串時做錯了什么,但我無法弄清楚我做錯了什么。
如何正確轉換查詢?
我有一個類似的問題,我通過使用單引號而不是雙引號來解決它。 下面是我在存儲庫類中完美運行的方法之一。
public async Task<IEnumerable<Fixture>> GetUnorderedSeasonFixtures(PartitionKey partitionKey)
{
FeedIterator feedIterator = this.Container.GetItemQueryStreamIterator(
$"select * from c where c.streamId = '{partitionKey.ToString()}'",
null, new QueryRequestOptions() { PartitionKey = partitionKey});
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.