Compartilhar via


Tutorial: Usar um banco de dados do Cosmos DB de um aplicativo Windows

Este artigo contém as etapas necessárias para habilitar o trabalho com um banco de dados do Cosmos DB de um aplicativo 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

Este exemplo pode ser usado com qualquer projeto WPF, Windows Forms, WinUI 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 Package Manager Console (Exibir -> Outras Janelas -> Package Manager Console). Use o comando Install-Package Microsoft.Azure.Cosmos para instalar o pacote NuGet da biblioteca de cliente Azure Cosmos DB para 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, você precisará criar uma instância do Cosmos DB no Azure. Você pode fazer isso seguindo as etapas em Criar uma conta de banco de dados NoSQL em 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 em Azure e adiciona um novo 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 configuração e os requisitos necessários do Cosmos DB, consulte Desenvolver um aplicativo de console .NET usando Azure Cosmos DB para 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}");
}