我想在DB4O中存储Person对象。人员位置字段可以随时间更改。所以我从数据库中检索一个人并调用一个方法将位置字段设置为一个新的位置对象。 (我希望Location对象是不可变的,即DDD值对象)。更新字段时防止DB4O中的孤立对象
这有效,但先前分配的位置对象仍然是数据库。我如何配置DB4O以删除这些孤立的位置对象?或者我需要一些自定义流程来垃圾收集?
此示例简化类:
class Person {
Location location;
public void Move(Location newLocation) {
location = newLocation;
}
}
class Location {
public Location(string city) {
this.City = city;
//etc
}
public readonly string City;
/// more fields...
}
编辑:一些更多信息 - 人意味着是DDD聚合根。所以没有外部引用一个人的内部状态。如果人员更新其位置,则旧位置应该不存在。
wtf是DDD dawg –