POCO / Domain 对象是否可以注入依赖项

Can POCO / Domain objects have dependencies injected to it

这是我当前的业务层代码结构 -

现在,我的两个域对象都依赖于

我读过一些文章,其中说域对象不应该对存储库有任何依赖性。所以我的问题分为两部分 -

  1. 域对象是否不应有任何依赖关系?在上面的例子中,如果对 'Company' 的某些操作应该触发对 'User' 的某些操作,那么 Company 对象是否可以依赖于 UserManager?
  2. 如果领域对象不应该有依赖关系,那么我应该把那些逻辑放在哪里?我应该在哪里调用存储库上的保存方法,或者在 'Company' 发生某些事情时调用 UserManager?

谢谢!

在DDD中,领域层将是封装所有领域逻辑的最内层。建议不要在你的域中有任何依赖项 类.

在您的场景中,使用 Domain Events

是理想的选择
  1. 公司域应引发事件,例如"OnPolicyChanged",这个事件应该在 UserManager 上监听,管理器应该调用 User 域中的域逻辑。

  2. 在领域层中包含持久性逻辑并不理想。它应该处于更高级别,例如应将更改提交到数据库的 service/Infrastructure 层。