TransactionScope具有相同的上下文

时间:2014-10-23 05:29:03

标签: c# entity-framework transactions

我可以为事务编写这样的EntityFramework代码:

using(var trans = new TransactionScope())
{
    using(var context1 = new MyDbContext())
    {
        context1.AddEntity(...);
        context1.SaveChanges();
    }

    using(var context2 = new MyDbContext())
    {
        context2.UpdateEntity(...);
        context2.SaveChanges();
    }

    trans.Complete();
}

我想要实现的是将两个操作作为一个单元(它只是一个演示,在实际情况下,这两个由不同的服务分开,因此它们不能重用上下文),其中任何一个失败会回滚。

以上代码是否足够?

1 个答案:

答案 0 :(得分:1)

正如你写的那样,它会起作用。

在你的问题中你提到

  

在实际情况中,这两者由不同的服务分隔,所以

这取决于您的服务类型。如果您的意思是WCF服务,那么您还需要正确配置WCF服务。有关详细信息,请参阅here和/或here