DDD - 表示/应用层脏检查

时间:2011-07-17 17:21:55

标签: .net orm domain-driven-design

如果我的应用程序有一个Application Layer,它公开可以由我的表示层调用的服务,并且这些Application服务返回域对象(不使用DTO)到表示层,如果用户更改域对象的状态怎么做然后,我确定用户在将其传递回应用程序层以进行更新时已经更改了什么?

那么应用程序层如何确定UI对域对象所做的更改,以便它可以

  1. 开始一个UnitOfWork
  2. 从存储库中检索域对象
  3. 将更改应用于域对象
  4. 提交UnitOfWork

1 个答案:

答案 0 :(得分:0)

因为您在表示层和“较低”层之间使用应用程序服务,所以您可能使用与ORM会话分离的域对象,您在演示文稿中对它们进行操作,然后将它们返回以保持持久性。

真正的问题是你为什么需要这个。通常需要对实体进行脏检查,因为用户在UI中更改它,因此您需要显示诸如“您确定要保留此表单”之类的消息或类似的消息。

无论哪种方式,我建议你研究你正在开发的UI框架上的数据绑定机制(WinForms / WPF?)。您可以让您的实体实现类似INotifyPropertyChanged接口的功能。您可以让UI中的演示者监听此更改,并将当前编辑的实体标记为脏。您可以为包含IsDirty属性的实体提供基类。这一切都取决于你想要做的地点和目的......