码迷,mamicode.com
首页 > 其他好文 > 详细

Abp 仓储的讨论

时间:2019-12-28 22:36:34      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:service   csharp   nbsp   app   ati   ice   pos   ica   epo   

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 仓储的讨论

标签:service   csharp   nbsp   app   ati   ice   pos   ica   epo   

原文地址:https://www.cnblogs.com/qgbo/p/12113162.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!