如果我严格遵循DDD,那么作为实体上的属性的IsDirty和IsNew的概念是否违反了实体应该只处理它自己的逻辑的规则。IsDirty/IsNew是用于持久化的东西。尽管如此,我还是看到人们把它直接放在实体或实体基类中。这难道不是拒绝吗?还有什么其他方法可以获得相同的功能并将其移出实体。像对象状态跟踪器一样的东西?我正在尝试实现这一点,这样我就可以做一些类似order.AddLine()的事情,然后调用orderRepository.Save(order)。我想这样做,而不是在每个setter中添加逻辑来说它是脏的。
发布于 2011-06-09 03:14:36
您说得对,严格遵守isNew和isDirty,实现DDD和DDD是不可接受的。通常,您希望使用Unit of Work pattern来跟踪需要传递到持久性存储的域层更改。
https://stackoverflow.com/questions/6113888
复制相似问题