gpt4 book ai didi

c# - 绕过聚合根

转载 作者:行者123 更新时间:2023-11-30 21:24:35 27 4
gpt4 key购买 nike

从聚合中获取只读集合而不通过根获取它是否可以?我的模型现在正在做一些这样的事情,我想知道这是否是一个可以接受的设计。谢谢

编辑:

举个例子

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

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

这有意义吗?

编辑:

好吧,我想出了一个让我的模型更干净的解决方案。我没有直接考虑我的一些设计,我学会了如何更好地使用 nHibernate 来帮助我提出解决方案。谢谢

最佳答案

Evans 说“根是 AGGREGATE 中唯一允许外部对象持有对...的引用的成员”(第 127 页)

我的理解是聚合应该作为一个单元出现在外部对象中。此外,Law of Demeter似乎适用。总之,我认为这是 Not Acceptable 。

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

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com