如何在两个dbContext中与EF6共享一个事务?

Álv*_*cía 4 entity-framework transactions

我正在使用EF6,我知道有两种方法可以使用事务,BeginTransaction和UseTransaction.

我只使用一个dbContext,但在我的情况下,我需要使用辅助dbContext,我需要第二个dbContext使用与主要相同的事务.我尝试使用此代码:

using(Entities miDbContext = new Entities())
{
    using (DbContextTransaction miTransaccion = miDbContext.Database.BeginTransaction())
    {
        Entities miDbContext2 = new Entities();
        miDbContext2.DataBase.UseTransaction(miTransaccion);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我在UseTransaction中收到错误,因为miTrasaccion的类型不正确.

我想知道如何在两个dbContexts之间共享相同的事务.

谢谢.

Saj*_*idQ 5

您需要先将miDbContext的连接传递给miDbContext2.

请尝试以下代码.它应该工作.

Entities miDbContext2 = new Entities(miDbContext.Database.Connection, false);
miDbContext2.DataBase.UseTransaction(miTransaccion);
Run Code Online (Sandbox Code Playgroud)