Sdílet prostřednictvím


Kurz: Použití databáze Cosmos DB z aplikace Windows

Tento článek obsahuje kroky potřebné k povolení práce s databází Cosmos DB z aplikace Windows. Obsahuje také malý fragment kódu, který ukazuje, jak můžete pracovat s databází v kódu.

Nastavte své řešení

Tento příklad lze použít s libovolným projektem WPF, Windows Forms a WinUI pro připojení aplikace pro Windows k databázi Cosmos DB. Pomocí těchto kroků nainstalujte balíček a vyzkoušejte ukázkový kód pro některé základní úlohy.

  1. Otevřete konzoli Package Manager Console (Zobrazení -> jiné okna -> Konzole Správce Balíčků). Pomocí příkazu Install-Package Microsoft.Azure.Cosmos nainstalujte balíček NuGet pro Azure Cosmos DB pro NoSQL klientskou knihovnu pro .NET. To vám umožní programově přistupovat k databázím Cosmos DB.
  2. Sestavte projekt a ujistěte se, že sestavení proběhlo úspěšně bez chyb.

V dalším kroku budete muset v Azure vytvořit instanci Cosmos DB. Můžete to provést podle kroků v Vytvoření účtu databáze NoSQL v Azure Cosmos DB.

Práce se službou Cosmos DB pomocí ukázkového kódu

Následující ukázkový kód získá kontejner z instance Cosmos DB v Azure a pak do tohoto kontejneru přidá novou položku. Potom pomocí rozhraní API pro dotazy služby Cosmos DB NoSQL načte položku z kontejneru a vypíše stav odpovědi. Všimněte si, že koncový bod, ověřovací klíč a název databáze bude potřeba přizpůsobit na základě instance Cosmos DB, kterou jste vytvořili v předchozí části.

Poznámka:

Úplný příklad, včetně informací o požadovaném nastavení a konfiguraci služby Cosmos DB, najdete v tématu Develop konzolovou aplikaci .NET s Azure Cosmos DB pro 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}");
}