Esplorare Microsoft .NET SDK v3 per Azure Cosmos DB
Questa unità è incentrata su Azure Cosmos DB .NET SDK v3 per API per NoSQL. (pacchetto NuGet Microsoft.Azure.Cosmos ). Se si ha familiarità con la versione precedente di .NET SDK, è possibile acquisire familiarità con la raccolta e il documento dei termini.
Il repository GitHub azure-cosmos-dotnet-v3 include le soluzioni di esempio .NET più recenti. Queste soluzioni consentono di eseguire operazioni CRUD (creare, leggere, aggiornare ed eliminare) e altre operazioni comuni sulle risorse di Azure Cosmos DB.
Poiché Azure Cosmos DB supporta più modelli API, la versione 3 di .NET SDK usa il contenitore e l'elemento dei termini generici. Un contenitore può essere una raccolta, un grafo o una tabella. Un elemento può essere un documento, un bordo/vertice o una riga ed è il contenuto all'interno di un contenitore.
Di seguito sono riportati alcuni esempi che illustrano alcune delle operazioni chiave con cui si deve acquisire familiarità. Per altri esempi, visitare il collegamento a GitHub mostrato in precedenza. Gli esempi seguenti usano la versione asincrona dei metodi.
CosmosClient
Crea un nuovo oggetto CosmosClient con una stringa di connessione.
CosmosClient è thread-safe. È consigliabile mantenere una singola istanza di CosmosClient per durata dell'applicazione che renda più efficienti la gestione e le prestazioni delle connessioni.
CosmosClient client = new CosmosClient(endpoint, key);
Esempi di database
Creazione di un database
Il metodo CosmosClient.CreateDatabaseAsync genera un'eccezione se esiste già un database con lo stesso nome.
// New instance of Database class referencing the server-side database
Database database1 = await client.CreateDatabaseAsync(
id: "adventureworks-1"
);
L'oggetto CosmosClient.CreateDatabaseIfNotExistsAsync verifica se esiste un database e, se non esiste, lo crea. Viene usato solo il database id per verificare se è presente un database esistente.
// New instance of Database class referencing the server-side database
Database database2 = await client.CreateDatabaseIfNotExistsAsync(
id: "adventureworks-2"
);
Leggere un database in base all'ID
Legge un database del servizio Azure Cosmos DB come operazione asincrona.
// Reads a Database resource with the ID property of the Database resource you wish to read.
Database database = this.cosmosClient.GetDatabase(database_id);
DatabaseResponse response = await database.ReadAsync();
Eliminare un database
Eliminare un database come operazione asincrona.
await database.DeleteAsync();
Esempi di contenitore
Creazione di un contenitore
Il metodo Database.CreateContainerIfNotExistsAsync controlla se esiste un contenitore e, se non esiste, lo crea. Viene usato solo il contenitore id per verificare se è presente un contenitore esistente.
// Set throughput to the minimum value of 400 RU/s
ContainerResponse simpleContainer = await database.CreateContainerIfNotExistsAsync(
id: containerId,
partitionKeyPath: partitionKey,
throughput: 400);
Ottenere un contenitore in base all'ID
Container container = database.GetContainer(containerId);
ContainerProperties containerProperties = await container.ReadContainerAsync();
Eliminare un contenitore
Eliminare un contenitore come operazione asincrona.
await database.GetContainer(containerId).DeleteContainerAsync();
Esempi di elementi
Creare un elemento
Usare il metodo Container.CreateItemAsync per creare un elemento. Il metodo richiede un oggetto JSON serializzabile che deve contenere una proprietà id e un oggetto partitionKey.
ItemResponse<SalesOrder> response = await container.CreateItemAsync(salesOrder, new PartitionKey(salesOrder.AccountNumber));
Leggere un elemento
Usare il metodo Container.ReadItemAsync per leggere un elemento. Il metodo richiede il tipo per cui serializzare l'elemento insieme a una proprietà id e un oggetto partitionKey.
string id = "[id]";
string accountNumber = "[partition-key]";
ItemResponse<SalesOrder> response = await container.ReadItemAsync(id, new PartitionKey(accountNumber));
Eseguire una query su un elemento
Il metodo Container.GetItemQueryIterator crea una query per gli elementi in un contenitore di un database di Azure Cosmos usando un'istruzione SQL contenente valori con parametri. Verrà restituita un'istanza di 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
});
Altre risorse
Il repository GitHub azure-cosmos-dotnet-v3 include le soluzioni di esempio .NET più recenti per eseguire crud e altre operazioni comuni sulle risorse di Azure Cosmos DB.
Vedere questo articolo azure Cosmos DB.NET esempi V3 SDK (Microsoft.Azure.Cosmos) per l'API SQL per collegamenti diretti a esempi specifici nel repository GitHub.