我正在创建一个使用WCF(4.5),EF(6.1),Unity(3.5)和Unity3.Wcf(3.5)的应用程序
应用程序需要运行每月流程,检查上个月发生的更改并为审批流程创建记录。
此过程将由调用WCF服务方法触发。
这是基本逻辑:
Get collection of Things
For each Thing:
Get collection of ThingChanges
Calculate changed Amount
Create New ThingApproval
Update each ThingChange in ThingChanges with ThingApproval.ID
现在,据我所知,为了获得ThingApproval.ID,我需要在SaveChanges
之后执行Create New ThingApproval
,这将填充来自数据库的ID。然后,我需要在每个SaveChanges
之后再执行一次Update
,或者在每次完成之后再执行一次以提交所有更新。
如果此过程的任何部分失败,则需要回滚所有更改,回到第一个SaveChanges
之前
我该如何实现?