我正在尝试对当前项目使用存储库模式,并且目前正在尝试对域进行建模并找到聚合根。

我读过“级联删除”规则,该规则指出,如果在删除根目录后删除成员没有意义,那么它就不应成为根目录的一部分。

我将以警察事件为例:

事件(总根)-其中可能包含调查人员,每个人员所做的注释。它还可能包含犯罪嫌疑人,并列出了接受采访的日期。
是否获得了该事件的闭路电视录像?每次观看CCTV的日志以及由谁观看?
抄录了中央电视台的证据/法院等

由于似乎所有事件都卡在该事件上,因此IncidentAggregate看起来可能会变得很大。

我的问题是双重的,聚合根应管理多少?根内的根是否是一个好主意?

这可能不是一个很好的例子,因为您可能永远不会删除类似警察事件之类的东西,但是我希望它能更好地描述我的问题。

最佳答案

聚合通常包含对其他聚合根的引用。删除包含的聚合时,应删除这些引用,但它们指向的聚合将保留。

打个比方。我们假定的报告仅是一个事件汇总的一部分,并将与该汇总一起删除。没有其他汇总可以直接访问这些报告。

但是,事件汇总将引用代表官员和嫌疑人以及CCTV观看日志条目的汇总。

关于c# - 聚集根。兔子洞走了多远,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2118088/

10-12 22:38