2011-12-09 32 views
1

在我們的應用程序中,我們使用Jonathan Oliver的EventStore和CommonDomain。我們用來存儲事件的數據庫是SQL Server或Oracle。Howto:使用單個事務來跨越多個聚合的更新

對於特定用例,我們需要通過一個命令更新多個聚合。我意識到(在CQRS中)理想情況下一個命令應該只更新一個聚合,但在我們的情況下,它是一次更新多個實例的特定要求。

是否有一種簡單的方法(不使用兩階段提交)使此操作成爲原子,如果是的話會怎麼做?

編輯:這個問題是特定於使用EventStore框架(也可能是CommonDomain框架的存儲庫)。這不是關於交易處理或工作單元模式(我很清楚)的一般問題

+0

我強烈建議把你的用例在DDD論壇之一,因爲它是非常值得懷疑你需要影響兩個聚合。 OTOH,一般的建議是使用域名服務(再次不是很有用)。在技​​術層面上,您可能想共享ConnectionScope或TransactionScope(並不意味着分佈式Tx)。 –

回答

0

您可以嘗試工作單元。它會幫助你使原子變化。這裏是從MSDN的鏈接如何實現它 Repository and EF