在我目前正在开发的应用程序中,我刚刚使用RavenDB替换了db4o。我注意到有些东西不起作用,做了一些研究,现在需要一个检查。
假设这个领域模型:
人有姓名、地址和汽车属性。
汽车有制造商、型号和里程属性。
使用RavenDB,我可以创建并保存汽车。然后我可以创建一个人,并将汽车分配给该人的汽车属性。当我保存人时,汽车会保存在人中。一切看起来都很好。
问题是当我稍后更新Car.Mileage时。Car在RavenDB中得到更新,但在Person.Car中没有更新。Person.Car仍保留旧的里程数。
汽车存在于自己的范围内。Joe和Nancy都可以拥有这辆车,两个Person对象都将引用它。
在RavenDB中,应该如何处理这个问题?根据我所读关于聚合/根对象的所有内容,看起来我应该在Person中添加一个CarId属性。然后,当我加载Person时,也手动加载ID的Car。是这样吗?或者我可以将Car属性嵌入到Person中,并且以某种方式让所有Person对象显示正确的Person.Car.Mileage,因为Car.Mileage随时间变化而变化?
假设这个领域模型:
人有姓名、地址和汽车属性。
汽车有制造商、型号和里程属性。
使用RavenDB,我可以创建并保存汽车。然后我可以创建一个人,并将汽车分配给该人的汽车属性。当我保存人时,汽车会保存在人中。一切看起来都很好。
问题是当我稍后更新Car.Mileage时。Car在RavenDB中得到更新,但在Person.Car中没有更新。Person.Car仍保留旧的里程数。
汽车存在于自己的范围内。Joe和Nancy都可以拥有这辆车,两个Person对象都将引用它。
在RavenDB中,应该如何处理这个问题?根据我所读关于聚合/根对象的所有内容,看起来我应该在Person中添加一个CarId属性。然后,当我加载Person时,也手动加载ID的Car。是这样吗?或者我可以将Car属性嵌入到Person中,并且以某种方式让所有Person对象显示正确的Person.Car.Mileage,因为Car.Mileage随时间变化而变化?