"未找到资源"从documentdb

时间:2017-04-07 07:35:58

标签: c# azure azure-cosmosdb

我在删除文档表单文档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==

任何想法??

2 个答案:

答案 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);
    }