点击此处进入ABP系列文章总目录
基于DDD的现代www.sychzs.cn开发框架--ABP系列11、ABP领域层-Repositories
ABP 是“www.sychzs.cn Boilerplate Project(www.sychzs.cn 示例项目)”的缩写。
ABP官网:http://www.sychzs.cn
ABP 在 Github 上的开源项目:https://www.sychzs.cn/aspnetboilerplate
本文由台湾-小张
翻译仓库定义:“作为领域层和数据映射层之间的中介,使用类似集合的接口来访问领域对象”(Martin Fowler)。
事实上,仓储是用于对数据库进行域对象操作(实体和值对象Value类型)。一般来说,我们为不同的实体(或聚合根)创建相应的仓库。
在ABP中,仓储类必须实现IRepository接口。最好的办法是针对不同的仓储对象定义不同的接口。
Person实体的仓库接口声明示例如下:
IPersonRepository 继承自 IRepository
对于仓储类,IRepository定义了很多泛型方法。例如:Select、Insert、Update、Delete 方法(CRUD 操作)。大多数时候,这些方法足以满足一般实体的需求。如果这些方法对于实体来说足够了,我们不需要创建该实体所需的存储库接口/类。实施章节中有更多详细信息。