2013-08-26 103 views
0

我在客戶端使用breeze.js,在服務器上使用Breeze.WebApi。 我使用方法和域服務構建我的EF POCO實體。有一些後臺進程在服務器上運行,使用業務域就好了。如何將DDD與Breeze.WebApi.EFContextProvider一起使用?

問題是,我不確定如何使用EFContextProvider在服務器上保存客戶端更改時使用域方法和服務?

例如: 如果客戶端增加了一個新的任務,並指定這個新的任務應該產生新操作爲每個現有發票(微風SaveOptions.Tag),那麼域名服務AddActionsToInvoices應該調用爲現有發票添加必要的操作。最後,新任務和所有新行動應在同一交易中保存。

通常,爲了能夠使用域,我需要確保在調用域方法時完全獲取聚合根,並且所有更改都會在最後保留。

回答

0

這是一個相當開放的問題。我想我理解你的一般觀點是,至少有一些節省不僅僅是將更改的數據存儲在數據庫中。它們本身就是業務流程,恰好也可以保存數據。

您可以嘗試通過一個「SaveChanges」Web API方法來運行這些。但那感覺不對。很快你的SaveChanges方法就成爲一個幫助方法的巨大調度器。

你看過嗎"named saves"?該功能專爲聽起來像您的情況。我認爲它不好發送一個「標籤」,並試圖根據標籤值分派到合適的服務器端方法。

相關問題