You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#调用CosmosDB ARRAY_CONTAINS查询报400错误,求解决方案

解决思路及修正方案

问题核心是CosmosDB SQL要求JSON对象的键必须用双引号,你当前C#代码中用单引号包裹对象的键('Code'),不符合JSON语法规范,导致数据库解析查询时返回400错误。

修正后的查询语句写法

方式1:转义双引号(适配插值字符串)

将单引号替换为转义后的双引号(C#插值字符串中用\"表示双引号):

$"SELECT * FROM c WHERE ARRAY_CONTAINS(c.AlertsConfiguration, {{\"Code\":@alertCode, \"isEnabled\":true}}, true)";

方式2:使用逐字字符串(更易读)

用@开头的逐字字符串,内部双引号用""转义:

@"SELECT * FROM c WHERE ARRAY_CONTAINS(c.AlertsConfiguration, {""Code"":@alertCode, ""isEnabled"":true}, true)";

验证逻辑

修正后,C#生成的查询语句会和你在数据库中直接运行的版本完全一致(用双引号包裹JSON对象的键),符合CosmosDB SQL语法要求,即可正常执行查询。

内容的提问来源于stack exchange,提问作者pedrodotnet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 11:24:10