DeleteDocumentAsync
和ReadDocumentAsync
不适合我。我使用了RequestOptions
:
await client.DeleteDocumentAsync(document.SelfLink, new RequestOptions {
PartitionKey = new PartitionKey("mykey")
}).ConfigureAwait(false); // This works.
var uri = UriFactory.CreateDocumentUri("db", "coll", "id1");
await client.DeleteDocumentAsync(uri, new RequestOptions {
PartitionKey = new PartitionKey("mykey")
}).ConfigureAwait(false); // This throws
提供的分区键要么与集合中的定义不对应,要么与文档中指定的分区键字段值不匹配。
有什么想法吗?
答案 0 :(得分:3)
我尝试了一段抛出异常的代码片段,它对我有用。
我认为你误解了partitionkey
中RequestOptions
属性的含义。
例如,我的容器创建如下:
分区键是" name"我的收藏在这里。您可以检查收藏夹的分区键。
我的文件如下:
{
"id": "1",
"name": "jay"
}
{
"id": "2",
"name": "jay2"
}
我的partitionkey
是&#39; name&#39; ,所以我在这里有两个分区:&#39; jay&#39; 和<强>&#39; jay1&#39; 强>
所以,在这里你应该将partitionkey
属性设置为&#39; jay&#39;或者&#39; jay2&#39;,而不是&#39; name&#39;。
var uri = UriFactory.CreateDocumentUri("db", "part", "1");
client.DeleteDocumentAsync(uri, new RequestOptions
{
PartitionKey = new PartitionKey("jay")
}).ConfigureAwait(false);
希望它对你有所帮助。