Utforska Microsoft .NET SDK v3 för Azure Cosmos DB
Den här lektionen fokuserar på Azure Cosmos DB .NET SDK v3 för API för NoSQL. (Microsoft.Azure.Cosmos NuGet-paket.) Om du är bekant med den tidigare versionen av .NET SDK kanske du känner till termsamlingen och dokumentet.
GitHub-lagringsplatsen azure-cosmos-dotnet-v3 innehåller de senaste .NET-exempellösningarna. Du använder dessa lösningar för att utföra CRUD (skapa, läsa, uppdatera och ta bort) och andra vanliga åtgärder på Azure Cosmos DB-resurser.
Eftersom Azure Cosmos DB stöder flera API-modeller använder version 3 av .NET SDK den allmänna termcontainern och -objektet. En container kan vara en samling, ett diagram eller en tabell. Ett objekt kan vara ett dokument, ett kant/hörn eller en rad och är innehållet i en container.
Här följer exempel som visar några av de nyckelåtgärder som du bör känna till. Fler exempel finns på GitHub-länken som visades tidigare. Exemplen nedan använder asynkron version av metoderna.
CosmosClient
Skapar en ny CosmosClient
med en anslutningssträng. CosmosClient
är trådsäker. Rekommendationen är att upprätthålla en enda instans av CosmosClient
programmet per livslängd som möjliggör effektiv anslutningshantering och prestanda.
CosmosClient client = new CosmosClient(endpoint, key);
Databasexempel
Skapa en -databas
Metoden CosmosClient.CreateDatabaseAsync
genererar ett undantag om det redan finns en databas med samma namn.
// New instance of Database class referencing the server-side database
Database database1 = await client.CreateDatabaseAsync(
id: "adventureworks-1"
);
Kontrollerar CosmosClient.CreateDatabaseIfNotExistsAsync
om det finns en databas och skapar den om den inte gör det. Endast databasen id
används för att kontrollera om det finns en befintlig databas.
// New instance of Database class referencing the server-side database
Database database2 = await client.CreateDatabaseIfNotExistsAsync(
id: "adventureworks-2"
);
Läsa en databas via ID
Läser en databas från Azure Cosmos DB-tjänsten som en asynkron åtgärd.
DatabaseResponse readResponse = await database.ReadAsync();
Ta bort en databas
Ta bort en databas som en asynkron åtgärd.
await database.DeleteAsync();
Containerexempel
Skapa en container
Metoden Database.CreateContainerIfNotExistsAsync
kontrollerar om det finns en container, och om den inte gör det skapar den den. Endast containern id
används för att kontrollera om det finns en befintlig container.
// Set throughput to the minimum value of 400 RU/s
ContainerResponse simpleContainer = await database.CreateContainerIfNotExistsAsync(
id: containerId,
partitionKeyPath: partitionKey,
throughput: 400);
Hämta en container efter ID
Container container = database.GetContainer(containerId);
ContainerProperties containerProperties = await container.ReadContainerAsync();
Ta bort en container
Ta bort en container som en asynkron åtgärd.
await database.GetContainer(containerId).DeleteContainerAsync();
Objektexempel
Skapa ett objekt
Container.CreateItemAsync
Använd metoden för att skapa ett objekt. Metoden kräver ett JSON-serialiserbart objekt som måste innehålla en id
egenskap och en partitionKey
.
ItemResponse<SalesOrder> response = await container.CreateItemAsync(salesOrder, new PartitionKey(salesOrder.AccountNumber));
Läsa ett objekt
Container.ReadItemAsync
Använd metoden för att läsa ett objekt. Metoden kräver typ för att serialisera objektet till tillsammans med en id
egenskap och en partitionKey
.
string id = "[id]";
string accountNumber = "[partition-key]";
ItemResponse<SalesOrder> response = await container.ReadItemAsync(id, new PartitionKey(accountNumber));
Fråga efter ett objekt
Metoden Container.GetItemQueryIterator
skapar en fråga för objekt under en container i en Azure Cosmos-databas med hjälp av en SQL-instruktion med parametriserade värden. Den returnerar en 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
});
Andra resurser
GitHub-lagringsplatsen azure-cosmos-dotnet-v3 innehåller de senaste .NET-exempellösningarna för att utföra CRUD och andra vanliga åtgärder på Azure Cosmos DB-resurser.
I den här artikeln finns exempel på Azure Cosmos DB.NET V3 SDK (Microsoft.Azure.Cosmos) för SQL API för direkta länkar till specifika exempel på GitHub-lagringsplatsen.