Condividi tramite


Creare un contenitore in Azure Cosmos DB per NoSQL usando .NET

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 contenitore e agli elementi figlio.

Ecco alcune regole rapide per la denominazione di un contenitore:

  • I nomi dei contenitori non devono essere vuoti.
  • I nomi dei contenitori non possono superare i 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, vedere Quote e limiti del servizio

Creare un contenitore

Per creare un contenitore, chiamare uno dei metodi seguenti:

Creare un contenitore in modo asincrono

L'esempio seguente crea 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 Database.CreateContainerAsync metodo genera un'eccezione se esiste già un database con lo stesso nome.

Creare un contenitore in modo asincrono se non esiste già

L'esempio seguente crea un contenitore in modo asincrono solo se non esiste già 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 Database.CreateContainerIfNotExistsAsync metodo crea un nuovo contenitore solo se non esiste già. Questo metodo è utile per evitare errori se si esegue lo stesso codice più volte.

Analisi della risposta

In tutti gli esempi finora, la risposta alla richiesta asincrona è stata convertita immediatamente al tipo Container. È possibile analizzare i metadati relativi alla risposta, incluse le intestazioni e il codice di stato HTTP. Il vero tipo restituito per i metodi Database.CreateContainerAsync e Database.CreateContainerIfNotExistsAsync è ContainerResponse.

Nell'esempio seguente viene illustrato il metodo Database.CreateContainerIfNotExistsAsync che restituisce un oggetto ContainerResponse. Una volta restituito, è possibile analizzare le proprietà della risposta e quindi ottenere l'oggetto Container 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.