亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 C# 和 cosmos 客戶端從 cosmos 數據庫中刪除文檔

使用 C# 和 cosmos 客戶端從 cosmos 數據庫中刪除文檔

C#
收到一只叮咚 2023-07-22 15:58:40
我是 Cosmos DB 的新手,在閱讀了 Microsoft 文檔后,我嘗試從 Cosmos db 中刪除記錄。我嘗試盡可能地遵循這個例子。正在找到并讀取記錄,但在嘗試刪除時遇到未找到錯誤。該集合已分區,并且我已經在示例中提到了分區鍵,但仍然會導致錯誤。    private async Task QueryItemsAsync()    {        var sqlQueryText = "SELECT * FROM c WHERE c.tenantId = '5c6cb2d77c1c2edc001b9007' and c.id = 'abae8abf-5836-464f-8129-1f0e83a1f639'";        QueryDefinition queryDefinition = new QueryDefinition(sqlQueryText);        FeedIterator<Order> queryResultSetIterator = this.container.GetItemQueryIterator<Order>(queryDefinition);        List<Order> orders = new List<Order>();        while (queryResultSetIterator.HasMoreResults)        {            FeedResponse<Order> currentResultSet = await queryResultSetIterator.ReadNextAsync();            foreach (Order o in currentResultSet)            {                orders.Add(o);                Console.WriteLine("\tRead {0}\n", o);                   }        }    }             private async Task DeleteFamilyItemAsync()    {        var partitionKeyValue = "tenantId";        var orderId = "abae8abf-5836-464f-8129-1f0e83a1f639";        // Delete an item. Note we must provide the partition key value and id of the item to delete        ItemResponse<Order> orderResponse = await this.container.DeleteItemAsync<Order>(orderId, new PartitionKey(partitionKeyValue));        Console.WriteLine("Deleted Family [{0},{1}]\n", partitionKeyValue, orderId);    }如下所示,正在讀取記錄,因此可以找到它,但是當我嘗試刪除它時,它沒有被刪除。讀取{“Id”:null,“patentId”:null,“orchestrationId”:null,“preOrderId”:“88557ec1-dccb-4397-9ce4-20b6aeb1d636”,“cartId”:“adc463ef-7f38-4fa8-8f37-e505db3a5134”,“confirmationNum”:“QDQ-9 244014-14708","cartConfirmationNum":"IBM-8622967-14079","countryCode":null,"type":"order","cancelDate":null,"id":"abae8abf-5836-464f-8129-1f0e83a1f639"}發生 NotFound 錯誤:CosmosRequestException;StatusCode=NotFound;SubStatusCode=0;ActivityId=6dd52d23-68c8-4e6d-b4ff-70cd2a6921cf;RequestCharge=1.24;Message=響應狀態代碼不表示成功:404 Substatus:0 原因:()。;演示結束,按任意鍵退出。
查看完整描述

1 回答

?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

問題出在你的partitionKeyValue. 您提供的是分區鍵定義而不是值。該值是實際的租戶 id 而不是文本tenantId。


您的刪除代碼應如下所示:


private async Task DeleteFamilyItemAsync()

{

    var partitionKeyValue = "5c6cb2d77c1c2edc001b9007"; // <-- This is the change

    var orderId = "abae8abf-5836-464f-8129-1f0e83a1f639";


    // Delete an item. Note we must provide the partition key value and id of the item to delete

    ItemResponse<Order> orderResponse = await this.container.DeleteItemAsync<Order>(orderId, new PartitionKey(partitionKeyValue));

    Console.WriteLine("Deleted Family [{0},{1}]\n", partitionKeyValue, orderId);

}


查看完整回答
反對 回復 2023-07-22
  • 1 回答
  • 0 關注
  • 153 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號