Kephas.Data是某种ORM吗?

  • 本文关键字:ORM Data Kephas orm kephas
  • 更新时间 :
  • 英文 :


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

不,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>() : TEntityDeleteEntity(entity)FindAsync<TEntity>(id): TEntityFindOneAsync<TEntity>(linq_expression)来创建、删除或查找实体。

  • 使用PersistChangesAsync()将内存中的更改保存到暂留存储中。

一个数据空间可以保存多个数据上下文,每个数据上下文负责一个专用的数据存储。歧视是按实体类型进行的。

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

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

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

相关内容

  • 没有找到相关文章

最新更新