我在删除文档表单文档db时遇到问题。代码非常简单,我没有做任何花哨的事情。基本上我得到文档的自我链接,然后使用自我链接删除,但它给了我例外。
await client.DeleteDocumentAsync(entity.SelfLink, new RequestOptions() { PartitionKey = new PartitionKey(partitionKey) }).ConfigureAwait(false);
entity是一个新添加的文档,存在于数据库中(我已经从Azure Portal检查了它的存在)
我得到的例外:
消息:{"错误":["未找到资源"]} ActivityId:052ad225-4e04-4757-89b8-51f6ccf55f7c,请求URI:https://sy3prdddc05-docdb-1.documents.azure.com:15236/apps/0ee0095b-872d-45bc-8739-67cfbd97db79/services/466a4dd1-27d3-45ca-b013-6875f06a38ab/partitions/73e5c3d8-0332-4c0c-9aec-47a3469ba958/replicas/131354346050636923p//dbs/l29HAA==/colls/l29HAKZFJwA=/docs/l29HAKZFJwAfAAAAAAAAAA==
任何想法??
答案 0 :(得分:5)
I finally found the issue! The name of partition key I specified for collection was Pascal case not camel case! and apparently it is case sensitive so it couldn't find the partition key!
答案 1 :(得分:0)
我也有类似的情况。在我的存储库中,在使用int类型的文档中,我使用了字符串作为分区键。将其更改为对象,以保持存储库中性并为其他类型打开。
public virtual async Task DeleteAsync(string databaseId, string collectionId, string id, object partitionKey)
{
var reqOptions = new RequestOptions()
{
PartitionKey = new PartitionKey(partitionKey)
};
await Client.DeleteDocumentAsync(UriFactory.CreateDocumentUri(databaseId, collectionId, id), reqOptions);
}