Usare un database Cosmos DB da un'app di Windows
Questo articolo illustra i passaggi da eseguire per poter usare un database Cosmos DB da un'app Windows. Contiene anche un piccolo frammento di codice che mostra come puoi interagire con il database nel codice.
Configurare la soluzione
Questo esempio può essere usato con qualsiasi progetto WPF, Windows Form, WinUI 3 e UWP per connettere l'app di Windows al database Cosmos DB. Completare questa procedura per installare il pacchetto e provare il codice di esempio per alcune attività di base.
- Apri la Console di Gestione pacchetti (Visualizza -> Altre finestre -> Console di Gestione pacchetti). Usare il comando
Install-Package Microsoft.Azure.Cosmos
per installare il pacchetto NuGet per la libreria client Azure Cosmos DB for NoSQL per .NET. Ciò permetterà di accedere ai database Cosmos DB a livello di codice. - Compilare il progetto e assicurarsi che la compilazione abbia avuto esito positivo senza errori.
Sarà quindi necessario creare un'istanza di Cosmos DB in Azure. A tale scopo, seguire la procedura descritta in Creare un account di database NoSQL in Azure Cosmos DB.
Usare Cosmos DB con il codice di esempio
Il codice di esempio seguente ottiene un contenitore da un'istanza di Cosmos DB in Azure, quindi aggiunge un nuovo elemento a tale contenitore. Usare quindi l'API di query NoSQL di Cosmos DB per recuperare l'elemento dal contenitore e restituire lo stato della risposta. Si noti che l'endpoint, la chiave di autenticazione e il nome del database devono essere personalizzati in base all'istanza di Cosmos DB creata nella sezione precedente.
Nota
Per un esempio completo, incluse le informazioni sull'installazione e la configurazione di Cosmos DB necessarie, vedere Sviluppare un'applicazione console .NET con Azure Cosmos DB for NoSQL.
using Microsoft.Azure.Cosmos;
...
public async Task CosmosSample(string endpoint, string authKey)
{
// CONNECT
var client = new CosmosClient(
accountEndpoint: endpoint,
authKeyOrResourceToken: authKey
);
Database database = client.GetDatabase("sample_customers");
ContainerProperties properties = new(
id: "customers",
partitionKeyPath: "/location"
);
Container container = await database.CreateContainerIfNotExistsAsync(properties);
// WRITE DATA
string customerId = "1234";
string state = "WA";
var customer = new
{
id = customerId,
name = "John Doe",
location = state
};
var createResponse = await container.CreateItemAsync(customer);
Console.WriteLine($"[Status code: {createResponse.StatusCode}]\t{customerId}");
// READ DATA
string sql = "SELECT * FROM customers c WHERE c.id = @id";
var query = new QueryDefinition(
query: sql
).WithParameter("@id", customerId);
using var feed = container.GetItemQueryIterator<dynamic>(queryDefinition: query);
var queryResponse = await feed.ReadNextAsync();
Console.WriteLine($"[Status code: {queryResponse.StatusCode}]\t{customerId}");
}