0

我在客户端使用breeze.js,在服务器使用Breeze.WebApi。我使用方法和域服务构建我的 EF POCO 实体。服务器上运行着一些后台进程,它们使用业务域就好了。

问题是我不确定在使用 EFContextProvider 在服务器上保存客户端更改时如何使用域方法和服务?

例如:如果客户端添加了一个新任务并指定这个新任务应该为每个现有发票生成新的操作(breeze SaveOptions.Tag),那么应该调用域服务 AddActionsToInvoices 以将必要的操作添加到现有发票。最后,新任务和所有新操作应在同一事务中保存。

通常,为了能够使用域,我需要确保在调用域方法时完全获取聚合根,并且最后保留所有更改。

4

1 回答 1

0

这是一个非常开放的问题。我想我理解你的一般观点是,至少一些保存不仅仅是将更改的数据存储在数据库中。它们本身就是业务流程,恰好也保存数据。

您可以尝试通过一个“SaveChanges”Web API 方法来运行所有这些。但这感觉不对。很快你的SaveChanges方法就变成了辅助方法的巨大调度器。

你看过“命名保存”吗?该功能专为听起来像您的场景而设计。我认为它优于发送“标签”并尝试根据标签值分派到适当的服务器端方法。

于 2013-08-27T08:23:43.917 回答