Erstellen eines Containers in Azure Cosmos DB for NoSQL mit .NET

GILT FÜR: NoSQL

Container in Azure Cosmos DB-Speichergruppen von Elementen. Bevor Sie Elemente erstellen, abfragen oder verwalten können, müssen Sie zunächst einen Container erstellen.

Benennen eines Containers

In Azure Cosmos DB ist ein Container analog zu einer Tabelle in einer relationalen Datenbank. Wenn Sie einen Container erstellen, bildet der Containername ein Segment des URI, der zum Zugreifen auf die Containerressource und alle untergeordneten Elemente verwendet wird.

Hier sind einige schnelle Regeln beim Benennen eines Containers:

  • Containernamen dürfen nicht leer sein.
  • Containernamen dürfen nicht länger als 256 Zeichen sein.

Nach dem Erstellen weist der URI für einen Container das folgende Format auf:

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

Tipp

Weitere Informationen zu den Grenzwerten von Containernamen finden Sie im Artikel Dienstkontingente und Grenzwerte.

Erstellen eines Containers

Um einen Container zu erstellen, rufen Sie eine der folgenden Methoden auf:

Asynchrones Erstellen eines Containers

Im folgenden Beispiel wird ein Container asynchron erstellt:

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

Die Database.CreateContainerAsync-Methode wirft eine Ausnahme aus, wenn eine Datenbank mit demselben Namen bereits vorhanden ist.

Asynchrones Erstellen eines Containers, falls er noch nicht vorhanden ist

Im folgenden Beispiel wird ein Container asynchron erstellt, wenn er nicht bereits im Konto vorhanden ist:

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

Die Database.CreateContainerIfNotExistsAsync-Methode erstellt nur einen neuen Container, wenn er noch nicht vorhanden ist. Diese Methode ist nützlich, um Fehler zu vermeiden, wenn Sie denselben Code mehrmals ausführen.

Analysieren der Antwort

In allen bisherigen Beispielen wurde die Antwort der asynchronen Anforderung sofort in den Container-Typ umgewandelt. Sie können Metadaten zur Antwort analysieren, einschließlich Headern und HTTP-Statuscode. Der true-Rückgabetyp für die Methoden Database.CreateContainerAsync und Database.CreateContainerIfNotExistsAsync ist ContainerResponse.

Das folgende Beispiel zeigt die Methode Database.CreateContainerIfNotExistsAsync, die ContainerResponse zurückgibt. Sobald sie zurückgegeben wurde, können Sie Antworteigenschaften analysieren und dann das zugrunde liegende Container-Objekt abrufen:

// 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;

Nächste Schritte

Nachdem Sie nun einen Container erstellt haben, verwenden Sie den nächsten Leitfaden zum Erstellen von Elementen.