DocumentDB - Cơ sở dữ liệu danh sách
Cho đến nay, chúng tôi đã tạo hai cơ sở dữ liệu trong tài khoản DocumentDB của mình, một cơ sở dữ liệu đầu tiên được tạo bằng cổng Azure trong khi cơ sở dữ liệu thứ hai được tạo bằng .Net SDK. Bây giờ để xem các cơ sở dữ liệu này, bạn có thể sử dụng cổng Azure.
Truy cập tài khoản DocumentDB của bạn trên cổng Azure và bạn sẽ thấy hai cơ sở dữ liệu ngay bây giờ.
Bạn cũng có thể xem hoặc liệt kê các cơ sở dữ liệu từ mã của mình bằng cách sử dụng .Net SDK. Sau đây là các bước liên quan.
Step 1 - Đưa ra một Truy vấn cơ sở dữ liệu không có tham số trả về một danh sách đầy đủ, nhưng bạn cũng có thể chuyển vào một truy vấn để tìm kiếm một cơ sở dữ liệu cụ thể hoặc các cơ sở dữ liệu cụ thể.
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);
}
Bạn sẽ thấy rằng có một loạt các phương thức CreateQuery này để định vị bộ sưu tập, tài liệu, người dùng và các tài nguyên khác. Các phương thức này không thực sự thực thi truy vấn, chúng chỉ xác định truy vấn và trả về một đối tượng có thể lặp lại.
Đó là lời gọi ToList () thực thi truy vấn, lặp lại kết quả và trả về chúng trong một danh sách.
Step 2 - Gọi phương thức GetDatabases từ tác vụ CreateDocumentClient sau khi DocumentClient được khởi tạo.
Step 3 - Bạn cũng cần nhận xét tác vụ CreateDatabase hoặc thay đổi id cơ sở dữ liệu, nếu không bạn sẽ nhận được thông báo lỗi rằng cơ sở dữ liệu tồn tại.
using (var client = new DocumentClient(new Uri(EndpointUrl), AuthorizationKey)) {
//await CreateDatabase(client);
GetDatabases(client);
}
Sau đây là tệp Program.cs hoàn chỉnh cho đến nay.
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);
}
}
}
Khi đoạn mã trên được biên dịch và thực thi, bạn sẽ nhận được kết quả sau chứa ID Cơ sở dữ liệu và Tài nguyên của cả hai cơ sở dữ liệu. Cuối cùng, bạn cũng sẽ thấy tổng số cơ sở dữ liệu.
******** Get Databases List ********
Database Id: myfirstdb; Rid: Ic8LAA==
Database Id: mynewdb; Rid: ltpJAA==
Total databases: 2