Является ли Kephas.Data чем-то вроде ORM? - PullRequest
1 голос
/ 13 апреля 2019

Копаем больше с помощью Kephas Framework Я заметил, что Kephas.Data обеспечивает функциональность, аналогичную функциональности классических ORM.Однако я не нашел никакой документации о том, как подключиться к базам данных или, по крайней мере, уточнить, правильно ли мое предположение или нет.

1 Ответ

1 голос
/ 15 апреля 2019

Нет, Kephas.Data - это абстракция над постоянством данных.Он может быть сопоставлен с типичными ORM или может быть напрямую связан с хранилищем постоянных данных, например MongoDB.Вот некоторые отправные точки:

  • Когда вам нужен доступ к данным, импортируйте сервис IDataSpace через фабрику, что-то вроде кода ниже:
    public class DataConsumer
    {
        IExportFactory<IDataSpace> dataSpaceFactory;

        public DataConsumer(IExportFactory<IDataSpace> dataSpaceFactory)
        {
            this.dataSpaceFactory = dataSpaceFactory;
        }

        public async Task<> GetDocumentsCountAsync(CancellationToken token)
        {
            using (var dataSpace = dataSpaceFactory.CreateExportedValue())
            {
                var documentCount = await dataSpace.Query<Document>().CountAsync().PreserveThreadContext();
                return documentCount;
            } 
        }
    }
  • Используйте метод Query<TEntity>() для запроса сущностей, используя LINQ для формирования данных.Однако вы должны убедиться, что базовая инфраструктура понимает используемый вами LINQ.

  • Используйте CreateEntityAsync<TEntity>() : TEntity, DeleteEntity(entity), FindAsync<TEntity>(id): TEntity, FindOneAsync<TEntity>(linq_expression) для создания, удаления,или найдите объект.

  • Используйте PersistChangesAsync() для сохранения изменений в памяти в постоянном хранилище.

A DataSpace может содержать несколько DataContexts , причем каждый DataContext отвечает за выделенное хранилище данных.Различение осуществляется по типу сущности.

Каждая реализация DataContext привязана к конкретному хранилищу.По умолчанию Kephas предоставляет адаптер MongoDB, также планируется использовать адаптер Entity Framework.

Особой функцией является интеграция DataBehaviors , которые вызываются при выполнении операций с данными или запросами.

Для получения дополнительной информации, пожалуйста, обратитесь к https://github.com/kephas-software/kephas/wiki/Architecture-of-data-access и аналогичным вики-страницам.

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