【问题标题】:how to choose aggregate root如何选择聚合根
【发布时间】:2017-10-13 03:49:12
【问题描述】:

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

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; }
}

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

非常感谢你

【问题讨论】:

    标签: domain-driven-design aggregate


    【解决方案1】:

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

    【讨论】:

    • 感谢您的回复。在应用程序中,上面的三个实体用作引用实体,我目前正在选择制造聚合根。因此,当我加载制造商时,我还必须加载
    • 感谢您的回复。如果我选择模型作为聚合根,那么制造商将成为聚合根?在我一直在制作的应用程序中,上面的三个实体用作引用实体,我目前正在选择 Manufacture 聚合根。你能告诉我这是否正确吗?如果模型变得更深,选择聚合的合适方法是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-12
    • 2022-01-19
    相关资源
    最近更新 更多