是否可以从聚合中获取只读集合,而无需通过根来获取它?我的模型现在正在执行某些操作,我想知道这是否可以接受。谢谢

编辑:

这是一个例子

我有一个称为UserAccount的聚合根实体和另一个称为VideoStore的聚合根。用户可以拥有多个商店,而视频商店可以有许多用户。一个非常基本的“多对多”表,但这不是因为“多对多”桥接表包含状态信息,所以它也必须是一个实体。因此,我有一个名为UserVideoStores的桥实体,它是聚合根VideStore的子实体(一对多)。

现在,当用户登录时,我想查找他们所属的哪些VideoStore,并向他们显示该信息。通过使UserAccount实体直接(一对多)引用聚合根VideoStores的子级UserVideoStores,可以轻松地做到这一点。这样做似乎更容易,然后必须使用HQL查询并从图的底部开始搜索以查找用户所在的商店。

那有意义吗?

编辑:

好吧,我想出了一个解决方案,以使我的模型更整洁。我并不是直接考虑一些设计,而是学会了更好地使用nHibernate来帮助我提出解决方案。谢谢

最佳答案

埃文斯说:“根是AGGREGATE的唯一成员,允许外部对象保存对...的引用”(第127页)

我的理解是,聚集应该作为外部对象的整体出现。此外,Law of Demeter似乎适用。底线,我认为这是不可接受的。

关于c# - 绕过汇总根,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1121740/

10-11 04:39