首页 > 解决方案 > 使用 c# SDK 从 CosmosDb 中删除文档

问题描述

我正在尝试使用以下代码从 CosmosDB 中删除一个文档,但每次都出现以下错误:“Microsoft.Azure.Documents.DocumentClientException:系统中不存在具有指定 ID 的实体”

该文档肯定在数据库中: 在此处输入图像描述

这是我正在使用的代码:

    this.client = new DocumentClient(new Uri(EndpointUri), PrimaryKey);
    var docUri = UriFactory.CreateDocumentUri(DatabaseName, CollectionName, documentId);

    var result = await this.client.DeleteDocumentAsync(docUri, new RequestOptions { PartitionKey = new PartitionKey("/id") });

有人知道问题可能是什么吗?

谢谢

标签: c#azure-cosmosdbazure-cosmosdb-sqlapi

解决方案


类中的PartitionKey属性RequestOptions表示值而不是分区键的定义。

这意味着您的删除行应该是这样的:

var result = await this.client.DeleteDocumentAsync(docUri, new RequestOptions { PartitionKey = new PartitionKey(documentId) });

推荐阅读