1
votes

I have following code:

CosmosClientOptions options = new CosmosClientOptions() { AllowBulkExecution = true };
CosmosClient cosmosclient = new CosmosClient(connStr, options);
Container container = cosmosclient.GetContainer("CoachAPI", "Vessels");

await VesselsContainer.DeleteItemAsync<CoachVessel>("81c91c3a4f4841529bf36badfbb4a2ba", new PartitionKey("name"));   
or
await VesselsContainer.DeleteItemAsync<CoachVessel>("81c91c3a4f4841529bf36badfbb4a2ba", new PartitionKey("XXXa Soya"));

When running code I get:

code does not indicate success: NotFound (404); Substatus: 0; ActivityId: ; Reason: ();'

Any pointers how to fix this?

Partion key: /name

This is my document: enter image description here

2
Exactly which operation is throwing?Richard
await Task.WhenAll(concurrentDeleteTasks.Take(3));Thomas Segato
The real problem with the code is in this sentence: container.DeleteItemAsync<string>(item, new PartitionKey("id")).Jason Pan

2 Answers

0
votes

The code has been tested in person and you can copy it directly to your project and run it.

The format of item is shown in the figure.

enter image description here

using System;
using System.Threading.Tasks;
using System.Configuration;
using System.Collections.Generic;
using System.Net;
using Microsoft.Azure.Cosmos;
using System.Linq;

namespace CosmosGettingStartedTutorial
{
    class Program
    {
        // <Main>
        public static async Task Main(string[] args)
        {
            try
            {
                Console.WriteLine("Beginning operations...\n");
                CosmosClient client = new CosmosClient("https://localhost:8081/", "C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==");
                Database database = await client.CreateDatabaseIfNotExistsAsync("Items");
                Container container = database.GetContainer("test");
                // Query for an item
                FeedIterator <response> feedIterator =  container.GetItemQueryIterator<response>("SELECT * FROM c");

                List<Task> concurrentDeleteTasks = new List<Task>();

                while (feedIterator.HasMoreResults)
                {
                    FeedResponse<response> res = await feedIterator.ReadNextAsync();
                    foreach (var item in res)
                    {
                        concurrentDeleteTasks.Add(container.DeleteItemAsync<response>(item.id, new PartitionKey(item.adress)));
                    }
                }
                await Task.WhenAll(concurrentDeleteTasks.Take(3));
            }
            catch (CosmosException de)
            {
                Exception baseException = de.GetBaseException();
                Console.WriteLine("{0} error occurred: {1}", de.StatusCode, de);
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: {0}", e);
            }
            finally
            {
                Console.WriteLine("End of demo, press any key to exit.");
                Console.ReadKey();
            }
        }
        public class response
        { 
            public string id { get; set; }
            public string adress { get; set; }
            public string _rid { get; set; }
            public string _self { get; set; }
            public string _etag { get; set; }
            public string _attachments { get; set; }
            public long _ts { get; set; }
        }
    }
}
0
votes

Make sure, that you use the correct container. In your case

Container container = cosmosclient.GetContainer("CoachAPI", "Vessels");    
await container.DeleteItemAsync<CoachVessel>("81c91c3a4f4841529bf36badfbb4a2ba", new PartitionKey("XXXa Soya"));

instead of

Container container = cosmosclient.GetContainer("CoachAPI", "Vessels");
await VesselsContainer.DeleteItemAsync<CoachVessel>("81c91c3a4f4841529bf36badfbb4a2ba", new PartitionKey("XXXa Soya"));