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.