Обширная работа прошла в поставщике Azure Cosmos DB в версии 9.0. Для улучшения поставщика необходимо вносить ряд критически важных изменений; Если вы обновляете существующее приложение, внимательно ознакомьтесь с разделом критических изменений.
Этот поставщик базы данных позволяет использовать Entity Framework Core с Azure Cosmos DB. Работы над этим поставщиком ведутся в рамках проекта Entity Framework Core.
Для простоты конечная точка и ключ здесь заданы в коде, но в рабочем приложении необходимо обеспечить их безопасное хранение. Сведения о подключении и проверке подлинности различных способов подключения к Azure Cosmos DB.
В этом примере Order представляет собой простую сущность, ссылающуюся на StreetAddressзависимого типа.
public class Order
{
public int Id { get; set; }
public int? TrackingNumber { get; set; }
public string PartitionKey { get; set; }
public StreetAddress ShippingAddress { get; set; }
}
public class StreetAddress
{
public string Street { get; set; }
public string City { get; set; }
}
Сохранение данных и запрос на их получение выполняется, как обычно в EF:
using (var context = new OrderContext())
{
await context.Database.EnsureDeletedAsync();
await context.Database.EnsureCreatedAsync();
context.Add(
new Order
{
Id = 1, ShippingAddress = new StreetAddress { City = "London", Street = "221 B Baker St" }, PartitionKey = "1"
});
await context.SaveChangesAsync();
}
using (var context = new OrderContext())
{
var order = await context.Orders.FirstAsync();
Console.WriteLine($"First order will ship to: {order.ShippingAddress.Street}, {order.ShippingAddress.City}");
Console.WriteLine();
}
Важно!
Путем вызова EnsureCreatedAsync вы создадите требуемые контейнеры и вставите начальные данные, если они есть в модели. Но EnsureCreatedAsync следует вызывать только во время развертывания, а не в рабочем режиме, так как это может вызвать проблемы с производительностью.
Пакет SDK Azure Cosmos DB не поддерживает RBAC для операций плоскости управления в Azure Cosmos DB. Используйте API управления Azure вместо EnsureCreatedAsync с RBAC.
Подключение и проверка подлинности
Поставщик Azure Cosmos DB для EF Core имеет несколько перегрузок метода UseCosmos . Эти перегрузки поддерживают различные способы подключения к базе данных и различные способы обеспечения безопасности подключения.
Важно!
Обязательно понять безопасный доступ к данным в Azure Cosmos DB, чтобы понять последствия безопасности и рекомендации по использованию каждой перегрузки UseCosmos метода.
Как правило, RBAC с учетными данными токена — это рекомендуемый механизм управления доступом.
Приведенный выше код показывает некоторые возможные параметры. Они не предназначены для одновременного использования. Подробное описание каждого из указанных выше параметров см. в документации по параметрам Azure Cosmos DB.
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв:
Создавайте эффективные запросы, создавайте политики индексирования, управляйте и подготавливайте ресурсы в API SQL и пакете SDK с помощью Microsoft Azure Cosmos DB.