我想使用 Jimmy Nilsson 在他的书Applying DDD with Patterns中提到的一个想法,那就是如果我有一个像Product这样的实体,我想为该实体拍摄历史信息的快照,一些像ProductSnapshot但我想知道如何使用 ORM 来实现它(我目前正在使用实体框架)。我面临的主要问题是,如果我有另一个像OrderLine这样的实体通过其构造函数接收产品,那么实体框架将需要您创建一个您希望保留的类型的公共属性,所以这将迫使我拥有这样的东西:
class OrderLine {
public Product Original Product {get; set;}
public ProductSnapshot Snapshot {get; set;}
}
这看起来很尴尬而且不直观,当涉及到数据绑定(我应该绑定到哪个属性)时,我不知道如何正确处理它,最后我认为Product是一个实体,而ProductSnapshot是一个值对象加上仅当接受OrderLine并且之后不再需要Product时才会拍摄快照。