Verwenden einer Cosmos DB-Datenbank über eine Windows-App

Dieser Artikel enthält die erforderlichen Schritte zur Verwendung einer Cosmos DB-Datenbank über eine Windows-App. Er enthält auch einen kleinen Codeausschnitt zur Veranschaulichung, wie Sie im Code mit der Datenbank interagieren können.

Einrichten der Lösung

Dieses Beispiel kann mit jedem WPF-, Windows Forms-, WinUI 3- und UWP-Projekt verwendet werden, um Ihre Windows-App mit einer Cosmos DB-Datenbank zu verbinden. Führen Sie die nachfolgenden Schritte aus, um das Paket zu installieren und Beispielcode für einige grundlegende Aufgaben zu testen.

Öffnen Sie die Paket-Manager-Konsole („Ansicht“ -> „Weitere Fenster“ -> „Paket-Manager-Konsole“). Verwenden Sie den Befehl Install-Package Microsoft.Azure.Cosmos, um das NuGet-Paket für die Azure Cosmos DB for NoSQL-Clientbibliothek für .NET zu installieren. Dies ermöglicht den programmgesteuerten Zugriff auf Cosmos DB-Datenbanken.

Erstellen Sie Ihr Projekt, und vergewissern Sie sich, dass der Buildvorgang erfolgreich und ohne Fehler abgeschlossen wurde.

Als Nächstes muss eine Cosmos DB-Instanz in Azure erstellt werden. Hierzu können Sie die Anleitung unter Schnellstart: Erstellen eines Azure Cosmos DB-Kontos, einer Datenbank, eines Containers sowie von Elementen mit dem Azure-Portal verwenden.

Verwenden von Cosmos DB mit Beispielcode

Der folgende Beispielcode ruft einen Container aus einer Cosmos DB-Instanz in Azure ab und fügt diesem Container anschließend ein neues Element hinzu. Danach wird die NoSQL-Abfrage-API von Cosmos DB verwendet, um das Element aus dem Container abzurufen und den Antwortstatus auszugeben. Beachten Sie, dass der Endpunkt, der Authentifizierungsschlüssel und der Datenbankname basierend auf der Cosmos DB-Instanz, die Sie im vorherigen Abschnitt erstellt haben, angepasst werden müssen.

Hinweis

Ein vollständiges Beispiel, einschließlich Informationen zur erforderlichen Einrichtung und Konfiguration von Cosmos DB, finden Sie unter Tutorial: Entwickeln einer .NET-Konsolenanwendung mit Azure Cosmos DB for NoSQL.

using Microsoft.Azure.Cosmos;

...

public async Task CosmosSample(string endpoint, string authKey)
{
    // CONNECT
    var client = new CosmosClient(
        accountEndpoint: endpoint,
        authKeyOrResourceToken: authKey
    );
    Database database = client.GetDatabase("sample_customers");
    ContainerProperties properties = new(
        id: "customers",
        partitionKeyPath: "/location"
    );
    Container container = await database.CreateContainerIfNotExistsAsync(properties);

    // WRITE DATA
    string customerId = "1234";
    string state = "WA";
    var customer = new
    {
        id = customerId,
        name = "John Doe",
        location = state
    };
    var createResponse = await container.CreateItemAsync(customer);
    Console.WriteLine($"[Status code: {createResponse.StatusCode}]\t{customerId}");

    // READ DATA
    string sql = "SELECT * FROM customers c WHERE c.id = @id";
    var query = new QueryDefinition(
        query: sql
    ).WithParameter("@id", customerId);
    using var feed = container.GetItemQueryIterator<dynamic>(queryDefinition: query);
    var queryResponse = await feed.ReadNextAsync();
    Console.WriteLine($"[Status code: {queryResponse.StatusCode}]\t{customerId}");
}

Siehe auch