Explorer le kit SDK Microsoft .NET v3 pour Azure Cosmos DB
Cette unité se concentre sur le Kit de développement logiciel (SDK) .NET Azure Cosmos DB v3 pour l’API pour NoSQL. (Package NuGet Microsoft.Azure.Cosmos .) Si vous connaissez la version précédente du Kit de développement logiciel (SDK) .NET, vous connaissez peut-être la collection de termes et le document.
Le dépôt GitHub azure-cosmos-dotnet-v3 inclut les derniers exemples de solutions .NET. Ces solutions vous permettent d’effectuer des opérations CRUD (créer, lire, mettre à jour et supprimer) et d’autres opérations courantes sur les ressources Azure Cosmos DB.
Étant donné qu’Azure Cosmos DB prend en charge plusieurs modèles d’API, la version 3 du Kit de développement logiciel (SDK) .NET utilise le conteneur et l’élément de termes génériques. Un conteneur peut être une collection, un graphique ou une table. Un élément peut être un document, un bord/vertex ou une ligne, et est le contenu à l’intérieur d’un conteneur.
Vous trouverez ci-dessous des exemples illustrant certaines des opérations clés que vous devez connaître. Pour plus d’exemples, consultez le lien GitHub présenté plus haut. Les exemples ci-dessous utilisent tous la version asynchrone des méthodes.
CosmosClient
Crée un nouveau CosmosClient
avec une chaîne de connexion.
CosmosClient
est thread-safe. La recommandation est de conserver une seule instance de CosmosClient
par durée de vie de l’application pour avoir une gestion et des performances de connexion efficaces.
CosmosClient client = new CosmosClient(endpoint, key);
Exemples de base de données
Création d'une base de données
La méthode CosmosClient.CreateDatabaseAsync
lève une exception si une base de données portant le même nom existe déjà.
// New instance of Database class referencing the server-side database
Database database1 = await client.CreateDatabaseAsync(
id: "adventureworks-1"
);
CosmosClient.CreateDatabaseIfNotExistsAsync
vérifie si une base de données existe et, si elle n’existe pas, la crée. Seule la base de données id
est utilisée pour vérifier si une base de données existe déjà.
// New instance of Database class referencing the server-side database
Database database2 = await client.CreateDatabaseIfNotExistsAsync(
id: "adventureworks-2"
);
Lire une base de données par identifiant
Lit une base de données à partir du service Azure Cosmos DB en tant qu’opération asynchrone.
DatabaseResponse readResponse = await database.ReadAsync();
Supprimer une base de données
Supprime une base de données en tant qu’opération asynchrone.
await database.DeleteAsync();
Exemples de conteneur
Créez un conteneur.
La méthode Database.CreateContainerIfNotExistsAsync
vérifie si un conteneur existe et, s’il n’existe pas, le crée. Seul le conteneur id
est utilisé pour vérifier si un conteneur existe déjà.
// Set throughput to the minimum value of 400 RU/s
ContainerResponse simpleContainer = await database.CreateContainerIfNotExistsAsync(
id: containerId,
partitionKeyPath: partitionKey,
throughput: 400);
Obtenir un conteneur par ID
Container container = database.GetContainer(containerId);
ContainerProperties containerProperties = await container.ReadContainerAsync();
Supprimer un conteneur
Supprime un conteneur en tant qu’opération asynchrone.
await database.GetContainer(containerId).DeleteContainerAsync();
Exemples d’éléments
Créer un élément
Utilisez la méthode Container.CreateItemAsync
pour créer un élément. La méthode nécessite un objet sérialisable JSON qui doit contenir une propriété id
et une partitionKey
.
ItemResponse<SalesOrder> response = await container.CreateItemAsync(salesOrder, new PartitionKey(salesOrder.AccountNumber));
Lire un élément
Utilisez la méthode Container.ReadItemAsync
pour lire un élément. La méthode nécessite un type pour y sérialiser l’élément, ainsi qu’une propriété id
et une partitionKey
.
string id = "[id]";
string accountNumber = "[partition-key]";
ItemResponse<SalesOrder> response = await container.ReadItemAsync(id, new PartitionKey(accountNumber));
Interroger un élément
La méthode Container.GetItemQueryIterator
crée une requête pour les éléments d’un conteneur dans une base de données Azure Cosmos en utilisant une instruction SQL avec des valeurs paramétrisées. Cette méthode retourne un 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
});
Autres ressources
Le dépôt GitHub azure-cosmos-dotnet-v3 inclut les derniers exemples de solutions .NET pour effectuer des opérations CRUD et d’autres opérations courantes sur les ressources Azure Cosmos DB.
Consultez cet article sur les exemples du Kit de développement logiciel (SDK) Azure Cosmos DB.NET V3 (Microsoft.Azure.Cosmos) pour l’API SQL pour obtenir des liens directs vers des exemples spécifiques dans le référentiel GitHub.