DDD聚合问题(.NET,EF)

时间:2011-08-11 12:48:02

标签: .net domain-driven-design aggregate

我的域模型(简化版)包含故事,团队,成员和评论。我正处于需要允许用户写一个关于故事的评论的地步,我有一个属于故事集合的评论实体,所以我在Story上有一个名为'AddComment'的方法。加载聚合来保存评论似乎很愚蠢,所以我想知道我是否应该从聚合中删除这个实体,或者我在这里缺少什么?我相信我会遇到不止一种类型的场景,所以任何帮助都会很棒!

由于

2 个答案:

答案 0 :(得分:2)

Marco,抵制允许技术实施推动像您的域模型那样的更改的冲动。每次我这样做,我后来都后悔了。如果评论仅存在于故事中,则将故事作为聚合并弯曲技术以匹配模型。

答案 1 :(得分:1)

如果没有故事就不能存在评论那么为什么加载故事以保存评论似乎很愚蠢呢?而你实际上并没有保存评论,而是将它添加到故事中,然后保存故事。

通常当您发现自己有这些文件时,您执行操作时会执行不必​​要的操作,这表明您的域模型可能需要更多细化。查看所有一致性边界要求(聚合),检查模型中的每个有界上下文,并且可能会在第一遍中遗漏您错过的内容。

正如Eric Evans所说,DDD是一个迭代过程。你将在前几次失败:)