Domain driven design 如何在聚合根中持久化N个值对象

Domain driven design 如何在聚合根中持久化N个值对象,domain-driven-design,aggregateroot,value-objects,Domain Driven Design,Aggregateroot,Value Objects,在DDD中,在具有Address值对象的Person的聚合根中,将该地址映射到数据库表很简单:只需将Address对象的属性嵌入到记录中。但是,当一个人有一张名单时,人数可能会有所不同,那该怎么办呢?我们是否创建一个单独的表来存储我们的所有地址(从而在每个地址上施加一些准标识),并且每一行都有一个FK返回给它所属的人?有一个对象关系阻抗不匹配的好例子。您可以做的是创建一个层超类型,持久性关注点(如id字段)就存在于其中。因此,从持久层的角度来看,VO是一个实体,但在域中仍然建模为VO 您可以阅读

在DDD中,在具有Address值对象的Person的聚合根中,将该地址映射到数据库表很简单:只需将Address对象的属性嵌入到记录中。但是,当一个人有一张名单时,人数可能会有所不同,那该怎么办呢?我们是否创建一个单独的表来存储我们的所有地址(从而在每个地址上施加一些准标识),并且每一行都有一个FK返回给它所属的人?

有一个对象关系阻抗不匹配的好例子。您可以做的是创建一个层超类型,持久性关注点(如id字段)就存在于其中。因此,从持久层的角度来看,VO是一个实体,但在域中仍然建模为VO


您可以阅读有关上述内容的更多信息。

感谢您提供的见解和链接。我知道这是离题的,但在你看来,NHibernate在支持DDD的任务上优于实体框架吗?@BCA,不幸的是,我从未使用过实体框架,但沃恩·弗农(Vaughn Vernon)在博客中谈到了如何有效地使用实体框架