C# · 12月 26, 2021

c# – 聚集根.兔子洞有多远

我正在尝试使用Repository模式作为我当前的项目,我目前正在尝试对域建模并找到聚合根.

我读过“级联删除”规则,其中规定如果在删除根目录时删除成员没有意义,那么它不应该是根的一部分.

我会用警察事件作为例子:

事件(综合根) – 这可能包含调查人员,每位官员的说明.它还可以包含具有被访问日期列表的嫌疑人.
中央电视台拍摄的影片是否为事件?每次看中央电视台和谁的日志?
中央电视台作为证据/法院等的副本

似乎事件聚合可能会变得巨大,因为它似乎一切都挂在那个事件上.

我的问题有两方面,总根管理多少,根本就是一个好主意?

这可能不是一个特别好的例子,因为你可能永远不会删除像警察事件那样的东西,但我希望它更好地描述我的问题.

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

用你的比喻我们将承担的报告是仅一个事件汇总的一部分,并将与总计一起删除.没有其他聚合将直接访问这些报告.

但是,事件汇总将参考代表人员,嫌疑犯和CCTV查看日志条目的汇总.