.net – 域驱动设计:如何访问聚合根的子节点

前端之家收集整理的这篇文章主要介绍了.net – 域驱动设计:如何访问聚合根的子节点前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果我有一个Order类作为聚合根和1000个行项目。

如何加载1000个订单项之一?据我所知,订单项只能通过Order类访问并具有“本地”身份。我仍然会在OrderRepository上创建一个存储库方法,如“GetLineItemById”?

编辑评论答案:
目前我不认为有一个不变的孩子是合理的。如果我有一个客户课程,有几个地址,合同甚至更多的孩子集合怎么办?一个巨大的实体我想执行CRUD方法

我会

public class Customer
{
    public IEnumerable<Address> Addresses { get; private set; }
    public IEnumerable<Contracts> Contracts { get; private set; }
    ...
}

如果用户纠正地址或合同财产的街道,我是否必须这样做?

public class Customer
{
    public void SetStreetOfAddress(Address address,street){}

    public void SetStreetNumberOfAddress(Address address,streetNumber){}
}

那么客户阶层就会充满孩子的操纵方法。所以我宁愿做

addressInstance.Street = "someStreet";

我觉得我误解了整个概念..

猜你在找的设计模式相关文章