我在Cosmos DB中有一个分区集合 . 我正在尝试使用Postman执行此集合中的存储过程,如此处所述https://docs.microsoft.com/en-us/rest/api/documentdb/execute-a-stored-procedure . 当我这样做时,我遇到以下错误:
{
"code": "BadRequest",
"message": "PartitionKey value must be supplied for this operation.\r\nActivityId: 0000000-0000-0000-0000-000000000000000, Microsoft.Azure.Documents.Common/1.19.162.2"
}
我有一个分区键,我作为参数发送到存储过程,随后在过程中的查询的 WHERE
子句中使用,但API似乎期望分区键以其他方式传递,即,请求 Headers ?
使用C#Document DB SDK时,分区键设置为 RequestOption
,如下所示:
var storedProcedureUri = UriFactory.CreateStoredProcedureUri("MyDB", "MyCol", "MyProc");
var requestOptions = new RequestOptions { PartitionKey = new PartitionKey(myPartitionKey) };
var procedureResponse = await Client.ExecuteStoredProcedureAsync<MyObjType>(storedProcedureUri, requestOptions);
var document = procedureResponse.Response;
return document;
从基本Web客户端执行过程时,我没有看到此请求选项在何处/如何设置 .
1 回答
需要PartitionKey作为请求标头以及其他一些标头:
有关详细信息,请参阅此处:https://docs.microsoft.com/en-us/rest/api/documentdb/common-documentdb-rest-request-headers