嵌套BeginTransaction调用在实体框架

时间:2018-06-11 21:27:35

标签: sql-server entity-framework entity-framework-6

目前使用BeginTransaction()对我的数据库进行更改。

基本交易的代码如下所示:

using (var ctxTransaction = _db.Database.BeginTransaction())
    {
        //do A
        _db.SaveChanges()
        ctxTransaction.Commit();
    }

但我正在调用一个也执行事务的方法,有效地使我的函数看起来像这样:

using (var ctxTransaction = _db.Database.BeginTransaction())
    {
        //do A
        _db.SaveChanges()

        using (var ctxTransaction2 = _db.Database.BeginTransaction())
        {
            //do B
            _db.SaveChanges()
            ctxTransaction2.Commit();
        }

        //do C
        _db.SaveChanges()
        ctxTransaction.Commit();
    }
  1. 如果B回滚,A还会回滚吗?
  2. 如果C回滚,B还会被回滚吗?

0 个答案:

没有答案