DocumentDB - Crea database

In questo capitolo impareremo come creare un database. Per usare Microsoft Azure DocumentDB, è necessario disporre di un account DocumentDB, un database, una raccolta e documenti. Abbiamo già un account DocumentDB, ora per creare il database abbiamo due opzioni:

  • Portale di Microsoft Azure o
  • .Net SDK

Creare un database per DocumentDB utilizzando il portale di Microsoft Azure

Per creare un database utilizzando il portale, di seguito sono riportati i passaggi.

Step 1 - Accedi al portale di Azure e vedrai il dashboard.

Step 2 - Ora fai clic sull'account DocumentDB creato e vedrai i dettagli come mostrato nello screenshot seguente.

Step 3 - Seleziona l'opzione Aggiungi database e fornisci l'ID per il tuo database.

Step 4 - Fare clic su OK.

Puoi vedere che il database è stato aggiunto. Al momento, non ha raccolte, ma possiamo aggiungere raccolte in seguito che sono i contenitori che memorizzeranno i nostri documenti JSON. Notare che ha sia un ID che un ID risorsa.

Creare un database per DocumentDB utilizzando .Net SDK

Per creare un database utilizzando .Net SDK, di seguito sono riportati i passaggi.

Step 1 - Apri l'applicazione console in Visual Studio dall'ultimo capitolo.

Step 2- Crea il nuovo database creando un nuovo oggetto database. Per creare un nuovo database, dobbiamo solo assegnare la proprietà Id, che stiamo impostando su "mynewdb" in un'attività CreateDatabase.

private async static Task CreateDatabase(DocumentClient client) {
   Console.WriteLine(); 
   Console.WriteLine("******** Create Database *******");
	
   var databaseDefinition = new Database { Id = "mynewdb" }; 
   var result = await client.CreateDatabaseAsync(databaseDefinition); 
   var database = result.Resource;
	
   Console.WriteLine(" Database Id: {0}; Rid: {1}", database.Id, database.ResourceId); 
   Console.WriteLine("******** Database Created *******"); 
}

Step 3- Ora passa questo databaseDefinition a CreateDatabaseAsync e ottieni un risultato con una proprietà Resource. Tutti i metodi di creazione dell'oggetto restituiscono una proprietà Resource che descrive l'elemento che è stato creato, che in questo caso è un database.

Otteniamo il nuovo oggetto database dalla proprietà Resource e viene visualizzato sulla console insieme all'ID risorsa che DocumentDB gli ha assegnato.

Step 4 - Ora chiama l'attività CreateDatabase dall'attività CreateDocumentClient dopo aver istanziato DocumentClient.

using (var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey)) { 
   await CreateDatabase(client); 
}

Di seguito è riportato il file Program.cs completo finora.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Microsoft.Azure.Documents;
using Microsoft.Azure.Documents.Client;
using Microsoft.Azure.Documents.Linq;
using Newtonsoft.Json;

namespace DocumentDBDemo {

   class Program {
      private const string EndpointUrl = "https://azuredocdbdemo.documents.azure.com:443/";
		
      private const string AuthorizationKey = "BBhjI0gxdVPdDbS4diTjdloJq7Fp4L5RO/
         StTt6UtEufDM78qM2CtBZWbyVwFPSJIm8AcfDu2O+AfV T+TYUnBQ==";
			
      static void Main(string[] args) {
         try {
            CreateDocumentClient().Wait();
         } catch (Exception e) {
            Exception baseException = e.GetBaseException();
            Console.WriteLine("Error: {0}, Message: {1}", e.Message, baseException.Message);
         }
         Console.ReadKey();
      }
		
      private static async Task CreateDocumentClient() {
         // Create a new instance of the DocumentClient
         using (var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey)) {
            await CreateDatabase(client);
         } 
      }
		
      private async static Task CreateDatabase(DocumentClient client) {
         Console.WriteLine();
         Console.WriteLine("******** Create Database *******");
			
         var databaseDefinition = new Database { Id = "mynewdb" };
         var result = await client.CreateDatabaseAsync(databaseDefinition);
         var database = result.Resource;
			
         Console.WriteLine(" Database Id: {0}; Rid: {1}", database.Id, database.ResourceId);
         Console.WriteLine("******** Database Created *******");
      }
		
   } 
}

Quando il codice precedente viene compilato ed eseguito, riceverai il seguente output che contiene gli ID database e risorse.

******** Create Database ******* 
 Database Id: mynewdb; Rid: ltpJAA== 
******** Database Created *******