Abp 仓储的讨论
Posted qgbo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Abp 仓储的讨论相关的知识,希望对你有一定的参考价值。
ABP的文档示例中,是这样的:
public class TaskAppService : ApplicationService, ITaskAppService { private readonly IRepository<Task> _taskRepository; public TaskAppService(IRepository<Task> taskRepository) { _taskRepository = taskRepository; }
如果这个AppService 需要多个 IRepository 呢? 一个一个注入吗?
查看仓储这个接口,发现是瞬时的生命周期。 每个仓储接口的实现类中,都会有Context。 这样一个请求,需要实例化这么多的Context?
另外从应用角度上看,每一个接口确实实现应该有独立的Context。Context的生命周期应该是Transit 的(不是Scope).
我们使用最原始的写法的话,应该只用一个Context.并且执行的逻辑也最清晰。
那这里的原因就是,一个AppService 中注入多个仓储接口是不合理的,这里应该使用一个仓储接口的Context 来引用到别的实体。或者在Domain层处理这些,但本质还是一样的。
以上是关于Abp 仓储的讨论的主要内容,如果未能解决你的问题,请参考以下文章
abp(net core)+easyui+efcore实现仓储管理系统——菜单-下(十七)