До сих пор мы создали две базы данных в нашей учетной записи DocumentDB, первая из которых создается с помощью портала Azure, а вторая база данных — с помощью .Net SDK. Теперь для просмотра этих баз данных вы можете использовать портал Azure.
Перейдите в свою учетную запись DocumentDB на портале Azure, и вы увидите две базы данных.
Вы также можете просматривать или перечислять базы данных из своего кода, используя .Net SDK. Ниже приведены необходимые шаги.
Шаг 1 — Выполните запрос к базе данных без параметров, который возвращает полный список, но вы также можете передать запрос для поиска конкретной базы данных или конкретных баз данных.
private static void GetDatabases(DocumentClient client) { Console.WriteLine(); Console.WriteLine(); Console.WriteLine("******** Get Databases List ********"); var databases = client.CreateDatabaseQuery().ToList(); foreach (var database in databases) { Console.WriteLine(" Database Id: {0}; Rid: {1}", database.Id, database.ResourceId); } Console.WriteLine(); Console.WriteLine("Total databases: {0}", databases.Count); }
Вы увидите, что существует множество этих методов CreateQuery для поиска коллекций, документов, пользователей и других ресурсов. Эти методы на самом деле не выполняют запрос, они просто определяют запрос и возвращают повторяемый объект.
Это вызов ToList (), который на самом деле выполняет запрос, повторяет результаты и возвращает их в списке.
Шаг 2. Вызов метода GetDatabase из задачи CreateDocumentClient после создания экземпляра DocumentClient.
Шаг 3 — Вам также необходимо прокомментировать задачу CreateDatabase или изменить идентификатор базы данных, в противном случае вы получите сообщение об ошибке, что база данных существует.
using (var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey)) { //await CreateDatabase(client); GetDatabases(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); GetDatabases(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 *******"); } private static void GetDatabases(DocumentClient client) { Console.WriteLine(); Console.WriteLine(); Console.WriteLine("******** Get Databases List ********"); var databases = client.CreateDatabaseQuery().ToList(); foreach (var database in databases) { Console.WriteLine(" Database Id: {0}; Rid: {1}", database.Id, database.ResourceId); } Console.WriteLine(); Console.WriteLine("Total databases: {0}", databases.Count); } } }
Когда приведенный выше код скомпилирован и выполнен, вы получите следующий вывод, содержащий идентификаторы базы данных и ресурсов обеих баз данных. В конце вы также увидите общее количество баз данных.