DocumentDB - 创建数据库

在本章中,我们将学习如何创建数据库.要使用Microsoft Azure DocumentDB,您必须拥有DocumentDB帐户,数据库,集合和文档.我们已经拥有一个DocumentDB帐户,现在要创建数据库我们有两个选项 :

  • Microsoft Azure Portal或

  • .Net SDK

使用Microsoft Azure门户为DocumentDB创建数据库

创建使用门户网站的数据库,以下是步骤.

步骤1 : 登录Azure门户,您将看到仪表板.

登录门户网站

第2步 : 现在点击创建的DocumentDB帐户,您将看到详细信息,如以下屏幕截图所示.

点击创建了DocumentDB

第3步 : 选择Add Database选项并提供数据库的ID.

选择添加数据库

第4步 : 单击确定.

数据库已添加

您可以看到数据库是添加.目前,它没有集合,但我们可以在以后添加集合,这些集合将存储我们的JSON文档.请注意,它同时具有ID和资源ID.

使用.Net SDK为DocumentDB创建数据库

使用.Net创建数据库SDK,以下是步骤.

第1步 : 从上一章打开Visual Studio中的控制台应用程序.

步骤2 : 通过创建新数据库对象来创建新数据库.要创建新数据库,我们只需要在CreateDatabase任务中分配我们设置为"mynewdb"的Id属性.

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 *******"); 
}

第3步 : 现在将此databaseDefinition传递给CreateDatabaseAsync,并使用Resource属性返回结果.所有创建对象方法都返回一个Resource属性,该属性描述了创建的项目,在这种情况下是一个数据库.

我们从Resource属性获取新的数据库对象并显示它在控制台上以及DocumentDB分配给它的资源ID.

步骤4 : 现在,在实例化DocumentClient之后,从CreateDocumentClient任务调用CreateDatabase任务.

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

以下是目前为止完整的Program.cs文件.

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 *******");
      }
		
   } 
}

编译并执行上述代码时,您将收到以下输出包含数据库和资源ID.

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