我使用的是Azure.Cosmos API 3.17.1版。如果我这样对我的Cosmos集合运行查询,我会得到我期望的结果:
string Sql = "SELECT c.LastName FROM c where c.LastName like 'Smi%'";
QueryDefinition oQry = new QueryDefinition(Sql);
FeedIterator<myObj> oFI = this.container.GetItemQueryIterator<myObj>(oQry); // returns Smith, Smithers, etc.
如果我试图将其参数化,我将一无所获:
string Sql = "SELECT c.LastName FROM c where c.LastName like '@KeyWord%'";
QueryDefinition oQry = new QueryDefinition(Sql);
oQry.WithParameter(@KeyWord, "Smi");
FeedIterator<myObj> oFI = this.container.GetItemQueryIterator<myObj>(oQry);
这是语法问题还是不受支持?
Tks
不要在参数名称中使用%
,也不需要引用它。
请尝试此代码:
string Sql = "SELECT c.LastName FROM c where c.LastName like @KeyWord";
QueryDefinition oQry = new QueryDefinition(Sql);
oQry.WithParameter("@KeyWord", "Smi%");
FeedIterator<myObj> oFI = container.GetItemQueryIterator<myObj>(oQry);