Microsoft .NET SDK v3 voor Azure Cosmos DB verkennen
Deze les is gericht op Azure Cosmos DB .NET SDK v3 for API for NoSQL. (Microsoft.Azure.Cosmos NuGet-pakket.) Als u bekend bent met de vorige versie van de .NET SDK, bent u mogelijk bekend met de termenverzameling en het document.
De GitHub-opslagplaats azure-cosmos-dotnet-v3 bevat de nieuwste .NET-voorbeeldoplossingen. U gebruikt deze oplossingen om CRUD uit te voeren (maken, lezen, bijwerken en verwijderen) en andere algemene bewerkingen op Azure Cosmos DB-resources.
Omdat Azure Cosmos DB ondersteuning biedt voor meerdere API-modellen, gebruikt versie 3 van de .NET SDK de algemene termencontainer en het item. Een container kan een verzameling, een graaf of een tabel zijn. Een item kan een document, rand/hoekpunt of rij zijn en is de inhoud binnen een container.
Hieronder vindt u voorbeelden van enkele belangrijke bewerkingen waarmee u bekend moet zijn. Ga naar de GitHub-koppeling die eerder is weergegeven voor meer voorbeelden. In de onderstaande voorbeelden wordt de asynchrone versie van de methoden gebruikt.
CosmosClient
Hiermee maakt u een nieuwe CosmosClient
met een verbindingsreeks. CosmosClient
is thread-safe. De aanbeveling is om één exemplaar van elke levensduur van CosmosClient
de toepassing te onderhouden dat efficiënt verbindingsbeheer en -prestaties mogelijk maakt.
CosmosClient client = new CosmosClient(endpoint, key);
Voorbeelden voor databases
Een -database maken
De CosmosClient.CreateDatabaseAsync
methode genereert een uitzondering als er al een database met dezelfde naam bestaat.
// New instance of Database class referencing the server-side database
Database database1 = await client.CreateDatabaseAsync(
id: "adventureworks-1"
);
De CosmosClient.CreateDatabaseIfNotExistsAsync
controles of er een database bestaat en als dat niet het probleem is, maakt u deze. Alleen de database id
wordt gebruikt om te controleren of er een bestaande database is.
// New instance of Database class referencing the server-side database
Database database2 = await client.CreateDatabaseIfNotExistsAsync(
id: "adventureworks-2"
);
Een database lezen op id
Leest een database uit de Azure Cosmos DB-service als asynchrone bewerking.
DatabaseResponse readResponse = await database.ReadAsync();
Een database verwijderen
Een database verwijderen als asynchrone bewerking.
await database.DeleteAsync();
Voorbeelden van containers
Een container maken
De Database.CreateContainerIfNotExistsAsync
methode controleert of er een container bestaat en als dit niet het probleem is, wordt deze gemaakt. Alleen de container id
wordt gebruikt om te controleren of er een bestaande container is.
// Set throughput to the minimum value of 400 RU/s
ContainerResponse simpleContainer = await database.CreateContainerIfNotExistsAsync(
id: containerId,
partitionKeyPath: partitionKey,
throughput: 400);
Een container ophalen op basis van id
Container container = database.GetContainer(containerId);
ContainerProperties containerProperties = await container.ReadContainerAsync();
Een container verwijderen
Een container verwijderen als asynchrone bewerking.
await database.GetContainer(containerId).DeleteContainerAsync();
Voorbeelden van items
Een item maken
Gebruik de Container.CreateItemAsync
methode om een item te maken. Voor de methode is een JSON-serializeerbaar object vereist dat een id
eigenschap moet bevatten en een partitionKey
.
ItemResponse<SalesOrder> response = await container.CreateItemAsync(salesOrder, new PartitionKey(salesOrder.AccountNumber));
Een item lezen
Gebruik de Container.ReadItemAsync
methode om een item te lezen. Voor de methode is het type vereist om het item te serialiseren, samen met een id
eigenschap en een partitionKey
.
string id = "[id]";
string accountNumber = "[partition-key]";
ItemResponse<SalesOrder> response = await container.ReadItemAsync(id, new PartitionKey(accountNumber));
Een query uitvoeren op een item
Met Container.GetItemQueryIterator
de methode maakt u een query voor items onder een container in een Azure Cosmos-database met behulp van een SQL-instructie met geparameteriseerde waarden. Het retourneert een FeedIterator
.
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
});
Meer informatie
De GitHub-opslagplaats azure-cosmos-dotnet-v3 bevat de nieuwste .NET-voorbeeldoplossingen voor het uitvoeren van CRUD-bewerkingen en andere veelvoorkomende bewerkingen in Azure Cosmos DB-resources.
Raadpleeg dit artikel azure Cosmos DB.NET V3 SDK-voorbeelden (Microsoft.Azure.Cosmos) voor de SQL-API voor directe koppelingen naar specifieke voorbeelden in de GitHub-opslagplaats.