Explore o Microsoft .NET SDK v3 para Azure Cosmos DB

Concluído

Esta unidade se concentra no Azure Cosmos DB .NET SDK v3 for API for NoSQL. (Pacote NuGet Microsoft.Azure.Cosmos .) Se você estiver familiarizado com a versão anterior do SDK do .NET, você pode estar acostumado com os termos coleção e documento.

O repositório GitHub azure-cosmos-dotnet-v3 inclui as soluções de exemplo .NET mais recentes. Você usa essas soluções para executar CRUD (criar, ler, atualizar e excluir) e outras operações comuns em recursos do Azure Cosmos DB.

Como o Azure Cosmos DB dá suporte a vários modelos de API, a versão 3 do SDK do .NET usa os termos genéricos "contêiner" e "item". Um contêiner pode ser uma coleção, gráfico ou tabela. Um item pode ser um documento, borda/vértice ou linha, e é o conteúdo dentro de um contêiner.

Abaixo estão exemplos mostrando algumas das principais operações com as quais você deve estar familiarizado. Para mais exemplos, visite o link do GitHub mostrado anteriormente. Todos os exemplos abaixo usam a versão assíncrona dos métodos.

CosmosClient

Cria um novo CosmosClient com uma cadeia de conexão. CosmosClient é thread-safe. Recomenda-se manter uma única instância por tempo de vida do aplicativo que permita o gerenciamento e o desempenho eficientes da CosmosClient conexão.

CosmosClient client = new CosmosClient(endpoint, key);

Exemplos de base de dados

Criar uma base de dados

O CosmosClient.CreateDatabaseIfNotExistsAsync verifica se um banco de dados existe e, se não existir, o cria. Somente o banco de dados é usado para verificar se há um banco de dados id existente.

// An object containing relevant information about the response
DatabaseResponse databaseResponse = await client.CreateDatabaseIfNotExistsAsync(databaseId, 10000);

Ler uma base de dados por ID

Lê um banco de dados do serviço Azure Cosmos DB como uma operação assíncrona.

DatabaseResponse readResponse = await database.ReadAsync();

Eliminar uma base de dados

Exclua um banco de dados como uma operação assíncrona.

await database.DeleteAsync();

Exemplos de contentor

Criar um contentor

O Database.CreateContainerIfNotExistsAsync método verifica se um contêiner existe e, se não existir, ele o cria. Somente o contêiner é usado para verificar se há um contêiner id existente.

// Set throughput to the minimum value of 400 RU/s
ContainerResponse simpleContainer = await database.CreateContainerIfNotExistsAsync(
    id: containerId,
    partitionKeyPath: partitionKey,
    throughput: 400);

Obter um contêiner por ID

Container container = database.GetContainer(containerId);
ContainerProperties containerProperties = await container.ReadContainerAsync();

Eliminar um contentor

Exclua um contêiner como uma operação assíncrona.

await database.GetContainer(containerId).DeleteContainerAsync();

Exemplos de itens

Criar um item

Use o Container.CreateItemAsync método para criar um item. O método requer um objeto serializável JSON que deve conter uma id propriedade e um partitionKeyarquivo .

ItemResponse<SalesOrder> response = await container.CreateItemAsync(salesOrder, new PartitionKey(salesOrder.AccountNumber));

Ler um item

Use o Container.ReadItemAsync método para ler um item. O método requer tipo para serializar o item junto com uma id propriedade e um partitionKeyarquivo .

string id = "[id]";
string accountNumber = "[partition-key]";
ItemResponse<SalesOrder> response = await container.ReadItemAsync(id, new PartitionKey(accountNumber));

Consultar um item

O Container.GetItemQueryIterator método cria uma consulta para itens em um contêiner em um banco de dados do Azure Cosmos usando uma instrução SQL com valores parametrizados. Ele retorna um FeedIteratorarquivo .

QueryDefinition query = new QueryDefinition(
    "select * from sales s where s.AccountNumber = @AccountInput ")
    .WithParameter("@AccountInput", "Account1");

FeedIterator<SalesOrder> resultSet = container.GetItemQueryIterator<SalesOrder>(
    query,
    requestOptions: new QueryRequestOptions()
    {
        PartitionKey = new PartitionKey("Account1"),
        MaxItemCount = 1
    });

Outros recursos