首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kephas.Data是某种ORM吗?

Kephas.Data是某种ORM吗?
EN

Stack Overflow用户
提问于 2019-04-13 11:17:04
回答 1查看 20关注 0票数 1

深入研究Kephas.Data,我注意到Kephas.Data提供了类似于经典ORM的功能。然而,我没有找到任何关于如何连接到数据库的文档,或者至少没有澄清我的假设是否正确。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-15 20:47:19

不,Kephas.Data是对数据持久性的抽象。它可以映射到典型的ORM上,也可以直接绑定到持久存储,比如MongoDB。以下是一些起点:

  • 每当需要访问数据时,都可以通过工厂导入IDataSpace服务,如下所示:
代码语言:javascript
复制
    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>() : TEntityDeleteEntity(entity)FindAsync<TEntity>(id): TEntityFindOneAsync<TEntity>(linq_expression)创建、删除或查找实体。
  • 使用PersistChangesAsync()将内存中的更改持久化到持久性存储区。

一个DataSpace可以容纳多个DataContexts,每个DataContext负责一个专用的数据存储。歧视按实体类型进行。

每个DataContext实现都绑定到特定的存储区。默认情况下,Kephas提供MongoDB适配器,这也是一个正在计划的实体框架适配器。

一个特殊的特性是DataBehaviors的集成,它在数据或查询操作中被调用。

有关更多信息,请咨询https://github.com/kephas-software/kephas/wiki/Architecture-of-data-access和类似的wiki页面。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55664868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档