【问题标题】:How to split a big Aggregate Root to smaller?如何将大聚合根拆分为更小?
【发布时间】:2021-05-27 19:46:04
【问题描述】:

我正在开发一个具有特定聚合根的域层。 该聚合根由具有各种相关人员的公司组成。像这样的:

public class Company
{
   public virtual ICollecion<PersonType01Entity> Person01 {get; private set;}
   public virtual ICollecion<PersonType02Entity> Person02 {get; private set;}
   public virtual ICollecion<PersonType03Entity> Person03 {get; private set;}

   public void AddPersonType01(PersonType01Entity p) 
   { 
      if(Person01.Any(c => c.id == p.id )
         throw new Exception();
   }
   // more code
}

想象一下,我需要对每个人类型进行这种类型的检查,并检查其他不变量。我的 Aggregatte Root 实体变大了,我不知道如何将它拆分为更小。 对此有何建议?

【问题讨论】:

    标签: c# .net-core design-patterns aggregate domain-driven-design


    【解决方案1】:

    我不明白您为什么要创建一个包含许多集合的聚合。我会有一个名为“Company”的聚合和另一个名为“Person”的聚合。并且每个 Person 都有一个具有 person 类型的属性。并且公司只有一个包含所有人员的列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-28
      • 2022-06-12
      • 2012-06-27
      • 1970-01-01
      • 2019-05-29
      • 2015-04-20
      相关资源
      最近更新 更多