小编use*_*945的帖子

实体可以访问存储库吗?

我刚刚开始使用DDD,所以这可能是个愚蠢的问题......

是否可以让实体访问存储库(通过某个IRepository接口)在运行时获取值?例如,我想对属性强制执行"默认"选择:

class Person {
    private Company _employer;

    public Company Employer {
        get { return _employer; }
        set { 
            if(value != null) {
                _employer = value;
            } else {
                _employer = employerRepository.GetDefaultEmployer();
            }
        }
    }

    ...
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,做这样的事情是对DDD原则的可怕违反.如果不是,我的下一个问题是提供存储库使用的最佳方式是什么?是否应该在创建Person对象时提供?

谢谢,P

domain-driven-design ddd-repositories repository-pattern

25
推荐指数
3
解决办法
7401
查看次数