2011-11-03 42 views
1

我们目前正试图在我们基于.NET的应用程序(ASP.NET,WCF,Castle Windsor,NHibernate堆栈)中应用域驱动设计的原理如何处理在实体上使用域驱动设计时更新/修改

问题是在表级别,我们更新了(字符串),更新了(日期时间)订单。订单获得批准后,我们​​需要获取更新的更新,并反映审批者的姓名和批准时的日期/时间。

你们是否在应用层中做了如下的事情?请指教
为了= orderRepository.Find(订单ID) order.businessLogicCall1()
order.businessLogicCall2()
order.updatedBy(用户名)
orderRepository.Save(订单)

凡order.updatedBy ()调用还会更新执行更新时的日期/时间的内部字段updatedOn。这由Nhibernate发布到桌子上

回答

1

为什么不order.approve(anApprover,approvalDate)其中anApprover是哪一个批准它?如何在数据库中表示取决于你。 正交于此的是持续性机制,可以将每个受影响的实体与谁一起执行操作(可能是最终用户)。这种存储具有较少的商业意义。

+0

是的,你的想法很好,很有道理。因此,我们更新相应业务操作发生时的最后修改日期。 – Gopal

相关问题