Compartilhar via


Usar um banco de dados do Cosmos DB por meio de um aplicativo do Windows

Esse artigo contém as etapas necessárias para permitir o trabalho com um banco de dados do Cosmos DB em um aplicativo do Windows. Também contém um pequeno snippet de código que mostra como é possível interagir com o banco de dados no código.

Configurar sua solução

Esse exemplo pode ser usado com qualquer projeto WPF, Windows Forms, WinUI 3 e UWP para conectar seu aplicativo Windows a um banco de dados do Cosmos DB. Siga estas etapas para instalar o pacote e experimentar o código de exemplo para algumas tarefas básicas.

  1. Abra o Console do Gerenciador de Pacotes (Exibir > Outras Janelas > Console do Gerenciador de Pacotes). Use o comando Install-Package Microsoft.Azure.Cosmos para instalar o pacote NuGet para a biblioteca de clientes do Azure Cosmos DB for NoSQL para .NET. Isso permitirá acessar os bancos de dados do Cosmos DB programaticamente.
  2. Crie seu projeto e verifique se a compilação foi bem-sucedida e sem erros.

Em seguida, crie uma instância do Cosmos DB no Azure. É possível fazer isso seguindo as etapas em Criar uma conta de banco de dados do NoSQL no Azure Cosmos DB.

Trabalhar com o Cosmos DB usando um código de exemplo

O código de exemplo a seguir obtém um contêiner de uma instância do Cosmos DB no Azure e adiciona um item a esse contêiner. Em seguida, ele usa a API de consulta NoSQL do Cosmos DB para recuperar o item do contêiner e gerar o status da resposta. Observe que o ponto de extremidade, a chave de autenticação e o nome do banco de dados precisarão ser personalizados com base na instância do Cosmos DB criada na seção anterior.

Observação

Para obter um exemplo completo, incluindo informações sobre a instalação e a configuração necessárias do Cosmos DB, confira Desenvolver um aplicativo de console do .NET com o 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}");
}