Eksplorowanie zestawu Microsoft .NET SDK w wersji 3 dla usługi Azure Cosmos DB
Ta lekcja koncentruje się na zestawie .NET SDK platformy .NET usługi Azure Cosmos DB w wersji 3 dla interfejsu API dla noSQL. (Pakiet NuGet Microsoft.Azure.Cosmos ). Jeśli znasz poprzednią wersję zestawu .NET SDK, możesz zapoznać się z kolekcją terminów i dokumentami.
Repozytorium GitHub azure-cosmos-dotnet-v3 zawiera najnowsze przykładowe rozwiązania platformy .NET. Te rozwiązania umożliwiają wykonywanie operacji CRUD (tworzenie, odczytywanie, aktualizowanie i usuwanie) oraz inne typowe operacje na zasobach usługi Azure Cosmos DB.
Ponieważ usługa Azure Cosmos DB obsługuje wiele modeli interfejsu API, wersja 3 zestawu .NET SDK używa ogólnych terminów kontenera i elementu. Kontener może być kolekcją, grafem lub tabelą. Element może być dokumentem, krawędzią/wierzchołkiem lub wierszem i jest zawartością wewnątrz kontenera.
Poniżej przedstawiono przykłady pokazujące niektóre kluczowe operacje, które należy znać. Aby uzyskać więcej przykładów, odwiedź link GitHub pokazany wcześniej. W poniższych przykładach użyto asynchronicznej wersji metod.
CosmosClient
Tworzy nowy CosmosClient
przy użyciu parametry połączenia. CosmosClient
jest bezpieczny wątkowo. Zaleca się zachowanie pojedynczego CosmosClient
wystąpienia na cały okres istnienia aplikacji, która umożliwia wydajne zarządzanie połączeniami i wydajność.
CosmosClient client = new CosmosClient(endpoint, key);
Przykłady dotyczące baz danych
Utwórz bazę danych
Metoda CosmosClient.CreateDatabaseAsync
zgłasza wyjątek, jeśli baza danych o tej samej nazwie już istnieje.
// New instance of Database class referencing the server-side database
Database database1 = await client.CreateDatabaseAsync(
id: "adventureworks-1"
);
Sprawdza CosmosClient.CreateDatabaseIfNotExistsAsync
, czy baza danych istnieje, a jeśli nie, tworzy ją. Tylko baza danych id
jest używana do sprawdzania, czy istnieje istniejąca baza danych.
// New instance of Database class referencing the server-side database
Database database2 = await client.CreateDatabaseIfNotExistsAsync(
id: "adventureworks-2"
);
Odczytywanie bazy danych na podstawie identyfikatora
Odczytuje bazę danych z usługi Azure Cosmos DB jako operację asynchroniczną.
DatabaseResponse readResponse = await database.ReadAsync();
Usuwanie bazy danych
Usuń bazę danych jako operację asynchroniczną.
await database.DeleteAsync();
Przykłady dotyczące kontenerów
Tworzenie kontenera
Metoda Database.CreateContainerIfNotExistsAsync
sprawdza, czy kontener istnieje, a jeśli nie, tworzy go. Tylko kontener id
jest używany do sprawdzania, czy istnieje istniejący kontener.
// Set throughput to the minimum value of 400 RU/s
ContainerResponse simpleContainer = await database.CreateContainerIfNotExistsAsync(
id: containerId,
partitionKeyPath: partitionKey,
throughput: 400);
Pobieranie kontenera według identyfikatora
Container container = database.GetContainer(containerId);
ContainerProperties containerProperties = await container.ReadContainerAsync();
Usuwanie kontenera
Usuń kontener jako operację asynchroniczną.
await database.GetContainer(containerId).DeleteContainerAsync();
Przykłady dotyczące elementów
Tworzenie elementu
Container.CreateItemAsync
Użyj metody , aby utworzyć element. Metoda wymaga obiektu z możliwością serializacji JSON, który musi zawierać id
właściwość i partitionKey
.
ItemResponse<SalesOrder> response = await container.CreateItemAsync(salesOrder, new PartitionKey(salesOrder.AccountNumber));
Odczytywanie elementu
Container.ReadItemAsync
Użyj metody , aby odczytać element. Metoda wymaga, aby typ serializować element wraz z właściwością id
i .partitionKey
string id = "[id]";
string accountNumber = "[partition-key]";
ItemResponse<SalesOrder> response = await container.ReadItemAsync(id, new PartitionKey(accountNumber));
Wykonywanie zapytań względem elementu
Metoda Container.GetItemQueryIterator
tworzy zapytanie dotyczące elementów w kontenerze w bazie danych usługi Azure Cosmos przy użyciu instrukcji SQL z wartościami sparametryzowanymi. Zwraca wartość 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
});
Inne zasoby
Repozytorium GitHub azure-cosmos-dotnet-v3 zawiera najnowsze przykładowe rozwiązania platformy .NET do wykonywania operacji CRUD i innych typowych operacji na zasobach usługi Azure Cosmos DB.
Zapoznaj się z tym artykułem Przykłady zestawu SDK usługi Azure Cosmos DB.NET w wersji 3 (Microsoft.Azure.Cosmos) dla interfejsu API SQL, aby uzyskać bezpośrednie linki do konkretnych przykładów w repozytorium GitHub.