我继承了一个使用领域驱动的设计架构的项目,我对DDD知之甚少。我已经读了很多博客和文献。目前,我有三个域模型,其图形关系如下:父->有多个子->有多个GrandChildren。我正在使用EFCore2.1建立关系并将数据持久化到数据库中。
我的问题是:可以拥有下面的DDD关系
问题:我无法将一个新的孙子保存到现有的子级。
父级为AggregateRoot ==>子实体==> GrandChil为AggregatRoot
我可以使用parent.add(子)通过现有的“父”保存“子”,并且数据没有任何问题地保存到数据库中。
对于“孙女”,我采用类似的方法:
发布于 2020-03-16 13:20:11
我通过将外孙类转换为实体而不是AggregateRoot来解决我的问题。一旦我这么做了,一切就都正常了。换句话说,我能够通过父文件持久化数据。
我对DDD如此陌生,以至于我还没有掌握所有的概念。我继承了这个项目,并为一个简单的任务为域模型、工厂方法和业务逻辑编写了大量的代码。
发布于 2020-03-15 04:28:31
请理解正确执行DDD不会对数据库施加任何限制,相反,数据库不会对DDD或其“模型”施加任何限制。
孙辈不应该是总根。当您有这样的东西时,很可能您在您的域中缺少了一个上下文,并且/或边界定义不当。
请记住,关系的DDD概念与数据库和fk无关,就DDD而言,数据库被建模为整个系统的一个不透明存储依赖项。
https://stackoverflow.com/questions/60688735
复制相似问题