Seznámení se sadou Microsoft .NET SDK v3 pro Azure Cosmos DB
Tato lekce se zaměřuje na sadu .NET SDK služby Azure Cosmos DB v3 pro rozhraní API for NoSQL. (Balíček NuGet Microsoft.Azure.Cosmos .) Pokud znáte předchozí verzi sady .NET SDK, možná znáte kolekci termínů a dokument.
Úložiště GitHubu azure-cosmos-dotnet-v3 obsahuje nejnovější ukázková řešení .NET. Tato řešení slouží k provádění operací CRUD (vytvoření, čtení, aktualizace a odstranění) a dalších běžných operací s prostředky Azure Cosmos DB.
Protože Azure Cosmos DB podporuje více modelů rozhraní API, verze 3 sady .NET SDK používá kontejner a položku obecných termínů. Kontejner může být kolekce, graf nebo tabulka. Položka může být dokument, hrana nebo vrchol nebo řádek a je obsahem uvnitř kontejneru.
Následuje příklad ukazující některé klíčové operace, se kterými byste měli být obeznámeni. Další příklady najdete na odkazu GitHubu, který jste si zobrazili dříve. Následující příklady používají asynchronní verzi metod.
CosmosClient
Vytvoří nový CosmosClient
s připojovací řetězec. CosmosClient
je bezpečný pro přístup z více vláken. Doporučujeme udržovat jednu instanci CosmosClient
aplikace po celou dobu životnosti, která umožňuje efektivní správu a výkon připojení.
CosmosClient client = new CosmosClient(endpoint, key);
Příklady pro databáze
Vytvořit databázi
Metoda CosmosClient.CreateDatabaseAsync
vyvolá výjimku, pokud databáze se stejným názvem již existuje.
// New instance of Database class referencing the server-side database
Database database1 = await client.CreateDatabaseAsync(
id: "adventureworks-1"
);
Kontroly CosmosClient.CreateDatabaseIfNotExistsAsync
, jestli databáze existuje, a pokud ne, vytvoří ji. K ověření, jestli existuje existující databáze, se používá pouze databáze id
.
// New instance of Database class referencing the server-side database
Database database2 = await client.CreateDatabaseIfNotExistsAsync(
id: "adventureworks-2"
);
Čtení databáze podle ID
Načte databázi ze služby Azure Cosmos DB jako asynchronní operaci.
DatabaseResponse readResponse = await database.ReadAsync();
Odstranění databáze
Odstranění databáze jako asynchronní operace
await database.DeleteAsync();
Příklady pro kontejnery
Vytvoření kontejneru
Metoda Database.CreateContainerIfNotExistsAsync
zkontroluje, jestli kontejner existuje, a pokud ne, vytvoří ho. K ověření, jestli existuje existující kontejner, se používá pouze kontejner id
.
// Set throughput to the minimum value of 400 RU/s
ContainerResponse simpleContainer = await database.CreateContainerIfNotExistsAsync(
id: containerId,
partitionKeyPath: partitionKey,
throughput: 400);
Získání kontejneru podle ID
Container container = database.GetContainer(containerId);
ContainerProperties containerProperties = await container.ReadContainerAsync();
Odstranění kontejneru
Odstraňte kontejner jako asynchronní operaci.
await database.GetContainer(containerId).DeleteContainerAsync();
Příklady pro položky
Vytvoření položky
Container.CreateItemAsync
Pomocí metody vytvořte položku. Metoda vyžaduje serializovatelný objekt JSON, který musí obsahovat id
vlastnost a partitionKey
.
ItemResponse<SalesOrder> response = await container.CreateItemAsync(salesOrder, new PartitionKey(salesOrder.AccountNumber));
Čtení položky
Použijte metodu Container.ReadItemAsync
ke čtení položky. Metoda vyžaduje typ serializace položky spolu s id
vlastností a a partitionKey
.
string id = "[id]";
string accountNumber = "[partition-key]";
ItemResponse<SalesOrder> response = await container.ReadItemAsync(id, new PartitionKey(accountNumber));
Dotazování položky
Metoda Container.GetItemQueryIterator
vytvoří dotaz na položky v kontejneru v databázi Azure Cosmos pomocí příkazu SQL s parametrizovanými hodnotami. Vrátí hodnotu 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
});
Další prostředky
Úložiště GitHubu azure-cosmos-dotnet-v3 obsahuje nejnovější ukázková řešení .NET pro provádění operací CRUD a dalších běžných operací s prostředky Azure Cosmos DB.
V tomto článku najdete příklady sady Azure Cosmos DB.NET SDK v3 (Microsoft.Azure.Cosmos) pro rozhraní SQL API pro přímé odkazy na konkrétní příklady v úložišti GitHub.