Orm 子实体类应该有自己的存储库吗?

Orm 子实体类应该有自己的存储库吗?,orm,domain-driven-design,ddd-repositories,domain-object,Orm,Domain Driven Design,Ddd Repositories,Domain Object,我有几个类继承自Admin类:Manager,Translator,等等 Admin是一个聚合,因此应该有自己的存储库。但是,查找管理员或翻译人员的某些方法可能特定于这些类。其他可能对所有管理员都是通用的 这里的最佳实践是什么?我应该: 将所有查找管理员的方法放在一个存储库中 或者用存储库的层次结构模拟域模型类的层次结构,然后使用ManagerRepository和TranslatorRepository扩展AdminRepository 如我所见,这没什么大不了的 我会坚持使用一个Admin

我有几个类继承自
Admin
类:
Manager
Translator
,等等

Admin
是一个聚合,因此应该有自己的存储库。但是,查找管理员或翻译人员的某些方法可能特定于这些类。其他可能对所有管理员都是通用的

这里的最佳实践是什么?我应该:

  • 将所有查找管理员的方法放在一个存储库中
  • 或者用存储库的层次结构模拟域模型类的层次结构,然后使用
    ManagerRepository
    TranslatorRepository
    扩展
    AdminRepository

如我所见,这没什么大不了的


我会坚持使用一个
AdminRepository
,除非它膨胀并要求分解。

严格来说,只有聚合根需要自己的存储库

如果您需要在不访问另一个聚合根的情况下管理特定实体,那么该实体本身可以被视为(但不一定)聚合根


所以我想说:选择你的业务/领域观点,然后得出你的技术结论。

谢谢你的回答,但我不确定你是否正确理解了这个问题:Admin是聚合根,它的子类Manager和Translator也是聚合的(因此?)。问题不是我是否应该把它们看作是聚合,而是它们是否应该共享一个存储库或者它们都有一个存储库。谢谢你们的澄清。我的想法是:如果您想在Manager和Translator上执行完全相同的操作,那么如果大体上他们是平等的公民,那么拥有一个单一的存储库是有意义的。如果它们需要不同的处理或不同的操作,那么我认为最好为它们分别设置一个存储库。只要我的2美分。。。