В этой главе мы узнаем, как создать базу данных. Чтобы использовать Microsoft Azure DocumentDB, вы должны иметь учетную запись DocumentDB, базу данных, коллекцию и документы. У нас уже есть учетная запись DocumentDB, теперь для создания базы данных у нас есть два варианта:
- Портал Microsoft Azure или
- .Net SDK
Создайте базу данных для DocumentDB, используя портал Microsoft Azure.
Чтобы создать базу данных с использованием портала, выполните следующие действия.
Шаг 1. Войдите на портал Azure, и вы увидите панель управления.
Шаг 2 — Теперь нажмите на созданную учетную запись DocumentDB, и вы увидите детали, как показано на следующем скриншоте.
Шаг 3 — Выберите опцию Добавить базу данных и укажите идентификатор своей базы данных.
Шаг 4 — Нажмите ОК.
Вы можете видеть, что база данных добавлена. На данный момент у него нет коллекции, но мы можем добавить коллекции позже, которые будут контейнерами для хранения наших документов JSON. Обратите внимание, что у него есть и идентификатор, и идентификатор ресурса.
Создание базы данных для DocumentDB с использованием .Net SDK
Чтобы создать базу данных с помощью .Net SDK, выполните следующие действия.
Шаг 1 — Откройте Консольное приложение в Visual Studio из последней главы.
Шаг 2 — Создайте новую базу данных, создав новый объект базы данных. Чтобы создать новую базу данных, нам нужно только назначить свойство Id, которое мы устанавливаем как «mynewdb» в задаче 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 *******"); }
Шаг 3 — Теперь передайте это databaseDefinition в CreateDatabaseAsync и получите результат со свойством Resource. Все методы создания объекта возвращают свойство Resource, которое описывает созданный элемент, который в данном случае является базой данных.
Мы получаем новый объект базы данных из свойства Resource, и он отображается на консоли вместе с идентификатором ресурса, который ему назначен DocumentDB.
Шаг 4 — Теперь вызовите задачу CreateDatabase из задачи CreateDocumentClient после создания экземпляра DocumentClient.
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 *******"); } } }
Когда приведенный выше код скомпилирован и выполнен, вы получите следующий вывод, содержащий идентификаторы базы данных и ресурсов.