Creare un contenitore in Azure Cosmos DB for NoSQL con .NET

SI APPLICA A: NoSQL

I contenitori in Azure Cosmos DB archiviano set di elementi. Prima di poter creare, eseguire query o gestire elementi, è necessario creare un contenitore.

Assegnare un nome a un contenitore

In Azure Cosmos DB, un contenitore è analogo a una tabella in un database relazionale. Quando si crea un contenitore, il nome del contenitore costituisce un segmento dell'URI usato per accedere alla risorsa del contenitore e a qualsiasi elemento figlio.

Ecco alcune regole rapide per la denominazione di un contenitore:

  • I nomi dei contenitori non devono essere vuoti.
  • I nomi dei contenitori possono contenere un massimo di 256 caratteri.

Dopo la creazione, l'URI per un contenitore è in questo formato:

https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>/colls/<container-name>

Suggerimento

Per altre informazioni sui limiti dei nomi dei contenitori, consultare quote e limiti del servizio

Creazione di un contenitore

Per creare un contenitore, usare uno dei metodi seguenti:

Creare un contenitore in modo asincrono

Nell'esempio seguente viene creato un contenitore in modo asincrono:

// New instance of Container class referencing the server-side container
Container container1 = await database.CreateContainerAsync(
    id: "products-1",
    partitionKeyPath: "/category",
    throughput: 400
);

Il metodo Database.CreateContainerAsync genera un'eccezione se esiste già un database con lo stesso nome.

Creare un contenitore in modo asincrono se non è già presente

Nell'esempio seguente viene creato un contenitore in modo asincrono solo se non ne esiste già uno nell'account:

// New instance of Container class referencing the server-side container
Container container2 = await database.CreateContainerIfNotExistsAsync(
    id: "products-2",
    partitionKeyPath: "/category",
    throughput: 400
);

Il metodo Database.CreateContainerIfNotExistsAsync crea un nuovo contenitore solo se non ne esiste già uno. Questo metodo è utile per evitare errori se si esegue lo stesso codice più volte.

Analisi delle risposte

In tutti gli esempi riportati fino a questo punto, la risposta dalla richiesta asincrona è stata immediatamente trasmessa al tipo di Container. È possibile analizzare i metadati relativi alla risposta, incluse le intestazioni e il codice di stato HTTP. Il tipo restituito true per i metodi Database.CreateContainerAsync e Database.CreateContainerIfNotExistsAsync è ContainerResponse.

Nell'esempio seguente viene illustrato il metodo Database.CreateContainerIfNotExistsAsync che restituisce un ContainerResponse. Una volta restituito, è possibile analizzare le proprietà della risposta e quindi eventualmente ottenere l'oggetto Contenitore sottostante:

// New instance of Container class referencing the server-side container
ContainerResponse response = await database.CreateContainerIfNotExistsAsync(
    id: "products-3",
    partitionKeyPath: "/category",
    throughput: 400
);
// Parse additional response properties
Container container3 = response.Container;

Passaggi successivi

Dopo aver creato un contenitore, usare la guida successiva per creare elementi.