深入研究Kephas.Data,我注意到Kephas.Data提供了类似于经典ORM的功能。然而,我没有找到任何关于如何连接到数据库的文档,或者至少没有澄清我的假设是否正确。
发布于 2019-04-15 20:47:19
不,Kephas.Data是对数据持久性的抽象。它可以映射到典型的ORM上,也可以直接绑定到持久存储,比如MongoDB。以下是一些起点:
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()将内存中的更改持久化到持久性存储区。一个DataSpace可以容纳多个DataContexts,每个DataContext负责一个专用的数据存储。歧视按实体类型进行。
每个DataContext实现都绑定到特定的存储区。默认情况下,Kephas提供MongoDB适配器,这也是一个正在计划的实体框架适配器。
一个特殊的特性是DataBehaviors的集成,它在数据或查询操作中被调用。
有关更多信息,请咨询https://github.com/kephas-software/kephas/wiki/Architecture-of-data-access和类似的wiki页面。
https://stackoverflow.com/questions/55664868
复制相似问题