2011-11-03 64 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