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层中使用。

  • 相关阅读:
    VIM 文本对象选择
    XLA优化实例
    TVM/Relay 的 PartitionGraph()(mod) 函数讨论整理
    OpenCL通用异构开放环境
    LLVM IR 理解
    vue——请求跨域时,vcli2/vcli3设置代理
    【转】SQL 21天实战练习
    bash命令
    linux命令
    jenkins技术
  • 原文地址:https://www.cnblogs.com/wiseant/p/5520698.html
Copyright © 2011-2022 走看看