跨多个SaveChanges的实体框架事务

时间:2014-10-24 11:20:39

标签: entity-framework wcf transactions unity-container entity-framework-6.1

我正在创建一个使用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之前

我该如何实现?

1 个答案:

答案 0 :(得分:0)

我最终实现了GNaP.Data.Scope.EntityFramework包,它完全控制了DB Context,包括transactional。