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

  • 相关阅读:
    R
    P
    O
    M
    二分算法的一些思考
    I
    H
    G
    5-46 新浪微博热门话题 (30分)——unfinished HASH
    BZOJ 1179: [Apio2009]Atm
  • 原文地址:https://www.cnblogs.com/wiseant/p/5520698.html
Copyright © 2011-2022 走看看