小编Rah*_*l C的帖子

参数化 Where IN 子句不适用于 CosmosClient QueryDefinition 对象

我正在尝试编写一个包含 IN 子句的参数化查询。

对于前:

工作代码

输入字符串:“'guid1','guid2','guid3'”

public List<Employee> GetEmployeeIds(string ids){
QueryDefinition query =new QueryDefinition(@"Select * from Employee where Employee.Id in ("+ ids+")");
var result = GetDetails(query,cosmosClient);
return result;
}
Run Code Online (Sandbox Code Playgroud)

结果:返回预期结果

非工作代码

输入字符串:“'guid1','guid2','guid3'”

public List<Employee> GetEmployeeIds(string ids){
QueryDefinition query =new QueryDefinition(@"Select * from Employee where Employee.Id in ( @ids )")
                  .WithParameter("@ids", ids);
var result = GetDetails(query,cosmosClient);
return result;
}
Run Code Online (Sandbox Code Playgroud)

结果:返回0

上述代码使用的NuGet包: Microsoft.Azure.Cosmos 3.8.0

注意:我已尝试此链接中提到的所有选项,但它不适用于 CosmosClient QueryDefinition 对象 WHERE IN 与 Azure DocumentDB (CosmosDB) .Net SDK

对此的任何帮助都将受到高度赞赏。

提前致谢。!!

.net c# azure-cosmosdb azure-cosmosdb-sqlapi asp.net-core-3.1

9
推荐指数
2
解决办法
3527
查看次数