Kephas.数据是某种ORM吗?

Kephas.数据是某种ORM吗?,orm,kephas,Orm,Kephas,通过深入研究Kephas框架,我注意到Kephas.Data提供了类似于经典ORM的功能。但是,我没有找到任何关于如何连接到数据库的文档,或者至少没有找到澄清我的假设是否正确的文档。不,Kephas。数据是对数据持久性的抽象。它可以映射到典型的ORMs上,也可以直接绑定到持久性存储,比如MongoDB。以下是一些出发点: 无论何时需要访问数据,都可以通过工厂导入IDataSpace服务,如以下代码所示: 公共类数据消费者 { IExportFactory数据空间工厂; 公共数据使用者(IEx

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

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

  • 无论何时需要访问数据,都可以通过工厂导入IDataSpace服务,如以下代码所示:
公共类数据消费者
{
IExportFactory数据空间工厂;
公共数据使用者(IExportFactory dataSpaceFactory)
{
this.dataSpaceFactory=dataSpaceFactory;
}
公共异步任务GetDocumentsCountAsync(取消令牌)
{
使用(var dataSpace=dataSpaceFactory.CreateExportedValue())
{
var documentCount=await dataSpace.Query().CountAsync().PreserveThreadContext();
返回文件计数;
} 
}
}
  • 使用
    Query()
    方法查询实体,使用LINQ对数据进行整形。但是,您必须确保底层基础架构理解您使用的LINQ

  • 使用
    CreateEntityAsync():tenty
    DeleteEntity(entity)
    FindAsync(id):tenty
    FindOneAsync(linq_表达式)
    创建、删除或查找实体

  • 使用
    persistChangesSync()
    将内存中的更改持久化到持久化存储

一个数据空间可以容纳多个DataContext,每个DataContext负责一个专用的数据存储。区分是按实体类型进行的

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

一个特殊的特性是数据行为器的集成,在数据或查询操作时调用这些行为


有关更多信息,请参阅和类似的wiki页面。

我必须花一点时间查看此页面,谢谢!但有一个问题:数据组件是否以某种方式与模型集成?是的,它确实集成了,但这是一个可选功能。为此,检查Kephas.Data.Model包。
    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;
            } 
        }
    }