将有效的CosmosDB查询转换为C#代码时出错

我有一个简单的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
               });

但这不会返回任何结果,因此我假设我在使用{}和“字符串进行转义时做错了什么,但我无法弄清楚自己在做什么错。

如何正确转换查询?

评论