c# - 使用 C# SDK 从 CosmosDb 中删除文档

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

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

该文档肯定在数据库中: enter image description here

这是我正在使用的代码:

    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") });

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

谢谢

最佳答案

PartitionKey属性(property)在RequestOptions class 代表值而不是分区键的定义。

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

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

关于c# - 使用 C# SDK 从 CosmosDb 中删除文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55341814/

相关文章:

c# - Protobuf-net:无法创建抽象类

c# - LINQ to Entities 无法识别该方法

sql - 如何更新 Azure Cosmos DB 中的集合

Azure Function 无法连接到 Cosmos DB

javascript - Azure DocumentDB(Cosmos DB?)时间戳问题

azure - CosmosDb 搜索索引与分区键

c# - 我使用 HttpClient 的 GET 请求循环陷入了 AggregateExceptions 的神秘困惑中

c# - EF Code First From DB 不为所有表创建实体

azure - CosmosDB SQL API : Delete element matching criteria via partial update

azure-cosmosdb - 如何更改 cosmosDB 中的 API?