Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 如何使用Breeze.WebApi.EFContextProvider应用DDD?_Entity Framework_Domain Driven Design_Breeze - Fatal编程技术网

Entity framework 如何使用Breeze.WebApi.EFContextProvider应用DDD?

Entity framework 如何使用Breeze.WebApi.EFContextProvider应用DDD?,entity-framework,domain-driven-design,breeze,Entity Framework,Domain Driven Design,Breeze,我在客户端使用breeze.js,在服务器上使用breeze.WebApi。 我使用方法和域服务构建EF POCO实体。服务器上运行着一些后台进程,它们使用的是业务域 问题是我不确定在使用EFContextProvider在服务器上保存客户端更改时如何使用域方法和服务? 例如: 如果客户端添加新任务并指定此新任务应为每个现有发票(breeze SaveOptions.Tag)生成新操作,则应调用域服务AddActionsToInvoices向现有发票添加必要的操作。最后,新任务和所有新操作应在同

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

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

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


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

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

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

你看过吗?该功能是为您的场景设计的。我认为这比发送一个“标记”并尝试根据标记值分派到适当的服务器端方法要好得多