首页 > 解决方案 > 引用与另一种谷物相关的谷物的正确方法

问题描述

我一直在寻找这方面的一个例子,我不确定这是如何在这里完成的,因为谷物是孤立的。

示例:假设我有一个用户粒度,它可以引用 X 订单粒度,并且每个订单粒度都有一个与之关联的 OrderItem 粒度的集合。访问所有这些项目的首选方法是什么?

我想到的唯一方法是为 User grain 中的每个 Order grains 和 Order grains 中的 OrderItems 收集 PK,然后像调用任何 grain 一样调用它们。

抱歉,如果这是一个问题的新手,但我无法找到一个很好的示例解决方案来复习。

标签: orleans

解决方案


听起来你的分区太窄了。为什么每个订单项目(甚至可能是订单)都是自己的谷物类型,是否有实际原因?如果它只是一个没有任何重要逻辑的数据持有者,也没有在外部引用,我只会将该数据保留在 Order 本身中,因为似乎每个项目都不应该有自己的身份。如果我们将概念映射到 DDD 术语,则每个聚合通常与一种粒度类型相关,并且您通常不会使每个订单项表现为聚合根。因此,您只需引用一个恰好包含其所有订单项的 Order grain。这基本上只是一个概括,对您的实际领域了解不多。在一些域中可以将订单项视为它们自己的聚合根,但请确保这是您想要的,


推荐阅读