我正在尝试在Entity Framework Core中创建依赖事务(v.2.1)。
这个想法是在“父亲”交易中创建“子”交易。
如果其中一个孩子失败了,父亲也会失败。
我尝试使用TransactionScope
,但我遇到了以下错误。
警告作为警告的错误异常 'Microsoft.EntityFrameworkCore.Database.Transaction.AmbientTransactionWarning': 已检测到环境事务。实体框架核心确实如此 不支持环境事务。看到 http://go.microsoft.com/fwlink/?LinkId=800142要压制这一点 异常使用DbContextOptionsBuilder.ConfigureWarnings API。 重写时可以使用ConfigureWarnings DbContext.OnConfiguring方法或使用AddDbContext 应用服务提供商。
以下是控制器的方法,dbcontext是在控制器的构造函数中创建和初始化的
这是我的代码:
public bool father()
{
using (var transaction = new TransactionScope(TransactionScopeOption.Required))
{
try
{
//Do Stuff with the dbcontext
//(read, as "var x1 = _dbcontext.Database.Table1; etc...")...
child();
transaction.Complete();
//Do Stuff...
}
catch
{
//Do Stuff...
transaction.Dispose();
//Do Stuff...
}
}
}
}
public bool child()
{
using (var transaction2 = new TransactionScope(TransactionScopeOption.Required))
{
try
{
//Do other stuff with the dbcontext
//(read, as "var x2 = _dbcontext.Database.Table2; etc...")...
transaction2.Complete();
//Do Stuff...
}
catch
{
//Do Stuff...
transaction2.Dispose();
//Do Stuff...
}
}
}
}
我怎样才能让它发挥作用?