Banco de Dados de Documentos - Lista de Bancos de Dados
Até agora, criamos dois bancos de dados em nossa conta DocumentDB, o primeiro é criado usando o portal do Azure, enquanto o segundo banco de dados é criado usando .Net SDK. Agora, para exibir esses bancos de dados, você pode usar o portal do Azure.
Acesse sua conta DocumentDB no portal do Azure e você verá dois bancos de dados agora.
Você também pode visualizar ou listar os bancos de dados de seu código usando .Net SDK. A seguir estão as etapas envolvidas.
Step 1 - Emita uma consulta de banco de dados sem parâmetros que retorna uma lista completa, mas você também pode passar uma consulta para procurar um banco de dados específico ou bancos de dados específicos.
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);
}
Você verá que existem vários desses métodos CreateQuery para localizar coleções, documentos, usuários e outros recursos. Na verdade, esses métodos não executam a consulta, apenas definem a consulta e retornam um objeto iterável.
É a chamada para ToList () que realmente executa a consulta, itera os resultados e os retorna em uma lista.
Step 2 - Chame o método GetDatabases a partir da tarefa CreateDocumentClient depois que DocumentClient for instanciado.
Step 3 - Você também precisa comentar a tarefa CreateDatabase ou alterar o id do banco de dados, caso contrário, você receberá uma mensagem de erro informando que o banco de dados existe.
using (var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey)) {
//await CreateDatabase(client);
GetDatabases(client);
}
A seguir está o arquivo Program.cs completo até agora.
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);
}
}
}
Quando o código acima for compilado e executado, você receberá a seguinte saída que contém os IDs do banco de dados e dos recursos de ambos os bancos de dados. No final, você também verá o número total de bancos de dados.
******** Get Databases List ********
Database Id: myfirstdb; Rid: Ic8LAA==
Database Id: mynewdb; Rid: ltpJAA==
Total databases: 2