Explore o Microsoft .NET SDK v3 para Azure Cosmos DB
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, talvez esteja familiarizado 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, um gráfico ou uma tabela. Um item pode ser um documento, borda/vértice ou linha, e é o conteúdo dentro de um contêiner.
A seguir 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. A recomendação é manter uma única instância de cada 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.CreateDatabaseAsync
método lança uma exceção se já existir um banco de dados com o mesmo nome.
// New instance of Database class referencing the server-side database
Database database1 = await client.CreateDatabaseAsync(
id: "adventureworks-1"
);
O CosmosClient.CreateDatabaseIfNotExistsAsync
verifica se um banco de dados existe e, se não existir, o cria. Somente o banco de dados id
é usado para verificar se há um banco de dados existente.
// New instance of Database class referencing the server-side database
Database database2 = await client.CreateDatabaseIfNotExistsAsync(
id: "adventureworks-2"
);
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 id
é usado para verificar se há um contêiner 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 partitionKey
arquivo .
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 partitionKey
arquivo .
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 FeedIterator
arquivo .
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
O repositório GitHub azure-cosmos-dotnet-v3 inclui as soluções de exemplo .NET mais recentes para executar CRUD e outras operações comuns em recursos do Azure Cosmos DB.
Visite este artigo Exemplos do SDK do Azure Cosmos DB.NET V3 (Microsoft.Azure.Cosmos) para a API SQL para obter links diretos para exemplos específicos no repositório GitHub.