Entity Framework, как ORM для Cosmos DB - PullRequest
0 голосов
/ 01 июля 2018

Ищу любую ORM для Cosmos DB. Большинство клиентов, которые были упомянуты в примерах, создают новое соединение с таблицей, когда им нужно, т. Е. Нет политики пула соединений. Кажется, что создание нового соединения всегда, как указано в примерах, не масштабируется. Пожалуйста, поправьте меня, если я ошибаюсь. И есть ли у кого-нибудь хорошее ORM-решение, которое поставляется с пулом соединений

Ответы [ 3 ]

0 голосов
/ 01 июля 2018

Для CosmosDB нет рекомендуемой платформы ORM, есть несколько библиотек ORM, которые вы можете попробовать,

(i) Космонавт

(ii) CosmicGraph

Обновление:

ORM существуют для решения проблемы отображения объектов в реляционные базы данных. База данных документов, такая как CosmosDB, позволяет хранить простые объекты в формате JSON и не беспокоиться об ограничениях реляционной базы данных.

Однако команда CosmosDB оказала ему поддержку. Поставщик работает как любой другой поставщик EF Core. Вы ссылаетесь на его пакет в своем проекте, а затем указываете его в OnConfiguring или если вы используете ASP.NET Core при определении DbContext при запуске.

Поставщик имеет имя Microsoft.EntityFrameworkCore.Cosmos. Вы можете добавить его с помощью команды,

dotnet add package Microsoft.EntityFrameworkCore.Cosmos
0 голосов
/ 23 ноября 2018

Cosmos DB теперь поддерживает Entity Framework ( объявление ) (хотя в данный момент в состоянии предварительного просмотра); но работает довольно хорошо.

p.s. хороший сторонний гид с более подробной информацией о том, как настроить:

Однако вы должны подумать, нужен ли вам EF (ORM). Это, вероятно, полезно, если вы переключаете свою базу данных на CosmosDB; и не хочу сразу менять свой код EF; заметьте, однако, что в любом случае для переключения dbs требуется работа на EF-front; тем более если переключать типы БД: реляционные в NoSQL.

EF делает ORM (сопоставление объекта с БД); однако NoSQL уже имеет сопоставление объектов, поэтому EF на самом деле не нужен (на самом деле излишне усложняет вещи.

Есть хорошая статья от Microsoft по смежным темам: https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/microservice-ddd-cqrs-patterns/nosql-database-persistence-infrastructure

0 голосов
/ 01 июля 2018

Космонавт это именно то, что вы ищете.

Это простой и минималистичный сопоставитель объектов, который создает отношение коллекции к объекту. Вы можете использовать свои объекты POCO и выполнять все операции CRUD.

Идея довольно проста. Вы можете иметь один CosmosStore для каждой сущности (POCO / dtos и т. Д.). Этот объект будет использоваться для создания коллекции или использования ее части в базе данных Cosmos, и он будет предлагать весь доступ к данным для этого объекта. Он оптимизирован для обеспечения максимальной производительности и принимает за вас множество эффективных решений.

Он поддерживает совместное использование коллекций, чтобы снизить стоимость наличия нескольких объектов в одной коллекции.

Подробнее о Космонавте здесь .

Отказ от ответственности, я создатель Космонавта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...