C# 在同一事务中使用具有不同连接字符串的多个上下文的实体框架核心

C# 在同一事务中使用具有不同连接字符串的多个上下文的实体框架核心,c#,entity-framework-core,C#,Entity Framework Core,使用EF Core时,建议使用以下事务: using (var dbContextTransaction = _context.Database.BeginTransaction()) { } 如何使用可以跨多个上下文且具有不同连接字符串的事务,即我们不能使用SqlConnection.BeginTransation,因为这两个上下文具有不同的连接字符串 如果需要任何帮助,我们将不胜感激。当您需要一个范围比您正在使用的上下文更大的事务时,您可以使用TransactionScope对象。这需要

使用EF Core时,建议使用以下事务:

using (var dbContextTransaction = _context.Database.BeginTransaction())
{

}
如何使用可以跨多个上下文且具有不同连接字符串的事务,即我们不能使用SqlConnection.BeginTransation,因为这两个上下文具有不同的连接字符串


如果需要任何帮助,我们将不胜感激。

当您需要一个范围比您正在使用的上下文更大的事务时,您可以使用
TransactionScope
对象。这需要实体框架核心2.1,如所述:

使用System.Transactions 注意:此功能是EF Core 2.1中新增的

如果需要在更大范围内进行协调,可以使用环境事务

因此,请使用类似这样的方法:

using (var scope = new TransactionScope()) {
    // create and work with context here
}