我刚刚开始使用 DDD,所以也许这是一个愚蠢的问题......
实体可以访问存储库(通过某些 IRepository 接口)以在运行时获取值吗?例如,我想对属性强制执行“默认”选择:
class Person {
private Company _employer;
public Company Employer {
get { return _employer; }
set {
if(value != null) {
_employer = value;
} else {
_employer = employerRepository.GetDefaultEmployer();
}
}
}
...
}
我的问题是,做这样的事情是否严重违反了 DDD 原则。如果不是,我的下一个问题是提供存储库以供使用的最佳方式是什么?是否应该在创建 Person 对象时提供?
谢谢,P