zoukankan      html  css  js  c++  java
  • Abp项目中的领域模型实体类访问仓储的方法

    首先声明,不推荐使用这种方法。实体访问仓储是不被推荐的!

    1.简单粗暴的方法

    Abp.Dependency.IocManager.Instance.Resolve<IRepository<要访问的实体类>>();

    2.绕个弯子的方法

    • 首先声明一个继承自IDomainService的接口并定义接口方法,例如ITestService
    • 添加接口实现类,在该构造函数中声明要访问的实体仓储相关参数
        public class TestService : ITestService
        {
            private IRepository<Role> roleRepository;
    
            public TestService(IRepository<Role> roleRepository)
            {
                this.roleRepository = roleRepository;
            }
    
            public bool CheckSomething()
            {
                var query = roleRepository.GetAll();
                ...
            }
        }
    
    
    • 在实体类方法中通过IoC获取领域服务
    var svc = Abp.Dependency.IocManager.Instance.Resolve<ITestService>();
    var pass = svc.CheckSomething();
    

    Abp框架会自动为TestService实例注入相应的仓储变量,这个领域服务也可以直接在Application层中使用。

  • 相关阅读:
    圣战 [奇环, 树上差分]
    花火之声不闻于耳 [线段树]
    SP2878 KNIGHTS
    P5300 [GXOI/GZOI2019]与或和 [单调栈]
    Speike [线段树, 动态规划]
    Jerry [动态规划]
    JSON对象
    正则书写
    flex布局实践
    数组对象的深拷贝与浅拷贝
  • 原文地址:https://www.cnblogs.com/wiseant/p/5520698.html
Copyright © 2011-2022 走看看