【发布时间】:2020-03-15 00:48:39
【问题描述】:
我继承了一个使用领域驱动设计架构的项目,但我对 DDD 知之甚少。我一直在阅读很多关于它的博客和文献。目前,我有 3 个具有以下图形关系的域模型:Parent --> has many Children --> has many GrandChildren。我正在使用 EF Core 2.1 建立关系并将数据持久保存到数据库中。
- 父母有PK
- 子模型对父模型有一个 FK
- 孙模型对子模型有一个 FK
我的问题是:下面的关系可以用于 DDD
问题:我无法将新孙子保存到现有子孙。
Parent 作为 AggregateRoot ==> Child 作为 Entity ==> GrandChil 作为 AggregatRoot
我可以使用 parent.add(child) 通过现有的“父级”保存“子级”,并且数据会毫无问题地持久保存到数据库中。
对于“孙子”,我使用了类似的方法:
先获取现有的父级,再获取现有的子级
将孙子添加到现有子项 [child.addNewGrandChild(new_grand_child)]
UnitOfWork.Complete [这是它引发异常的地方,但我无法使用 Try/Catch 捕获异常]
【问题讨论】: