Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Domain driven design 通过聚合根访问实体:简单示例?_Domain Driven Design - Fatal编程技术网

Domain driven design 通过聚合根访问实体:简单示例?

Domain driven design 通过聚合根访问实体:简单示例?,domain-driven-design,Domain Driven Design,您能否展示通过ita聚合根访问聚合中实体内容的简单示例?我不清楚如何表示反映这些概念的聚合权限。tia。您通常会将其封装在聚合在其合约上公开的命令中 例如,对于订单聚合,您可以使用从GUI获得的数据添加订单行 //这是订单聚合根目录 公共阶级秩序 { 私有只读int-id; 私有只读客户;//客户是另一个聚合 私有只读IList订单行; 私有只读IOrderLineFactory orderLineFactory; 公共订单(int id、客户、IOrderLineFactory orderLi

您能否展示通过ita聚合根访问聚合中实体内容的简单示例?我不清楚如何表示反映这些概念的聚合权限。tia。

您通常会将其封装在聚合在其合约上公开的命令中

例如,对于订单聚合,您可以使用从GUI获得的数据添加订单行

//这是订单聚合根目录
公共阶级秩序
{
私有只读int-id;
私有只读客户;//客户是另一个聚合
私有只读IList订单行;
私有只读IOrderLineFactory orderLineFactory;
公共订单(int id、客户、IOrderLineFactory orderLineFactory)
{
this.id=id;
this.customer=customer;
this.orderLines=新列表();
this.orderLineFactory=orderLineFactory;
}
public void AddOrderLine(项目、整数数量)
{
OrderLine OrderLine=orderLineFactory.Create(此、项目、数量);
订单行。添加(订单行);
}
}

zsharp-我在下面给出的答案中有什么需要澄清的吗?我知道这是一个老问题,但是……在您的模型中,如果我想更新订单行,那会是什么样子……是否应该有公共订单行列表?然后将订单传回存储库,以更新订单/客户/订单项?@Craig上述问题是否顺利?我真的在为同样的事情挣扎。如何对聚合根中的嵌套实体进行更新?@Sudarshan所有访问都应该通过聚合根进行-因此不,不应该有公共命令行列表。您需要在聚合根上公开一个方法才能允许这样做。这种方法不会导致AR公开的接口膨胀吗?它需要通过自己的接口公开所有实体的行为。还假设orderline有一组需要更新的标记。我们会使用order.changeTagTitle(orderLineId,tagId,“新标题”)?