如何选择聚合根

时间:2017-10-13 03:49:13

标签: domain-driven-design aggregate

我为汽车行业的三个实体建模如下:

public class Manufacturer
{
    public int Id { get; set; }
    public string Name { get; set; }
    public ICollection<Model> Models { get; set; }
    public ACManufacturer()
    {
        AutoCareModels = new List<ACModel>();
    }
}

public class Model
{
    public int Id { get; set; }
    public string Name { get; set; }        
    public int NumberOfSeats { get; set; }
    public Manufacturer Manufacturer { get; set; }
    public ICollection<ManufacturedYear> ManufacturedYears { get; set; }     
    public Model()
    {
        ManufacturedYears = new List<ManufacturedYear>();
    }
 }

public class ManufacturedYear
{
    public int Id { get; set; }
    public int ProductionYear { get; set; }
    public Model Model { get; set; }
}

请告诉我如何选择聚合根或不同的方式来模拟三个实体

非常感谢

1 个答案:

答案 0 :(得分:0)

答案取决于您对这些型号的处理方式。你的应用在做什么?如果10个用户正在更新此应用中的数据 - 他们如何分工?什么是交易边界? 如果这10个用户通常使用10种不同的模型,那么您的屏幕是围绕模型组织的,那么Model就是您的聚合根。