目前,我有一个在 .net Core 2 项目(EFCore 2.01)上使用 NUnit 进行集成测试的基类。在这个项目中,我们在设置时创建一个事务,并在拆卸时进行回滚以隔离测试。
public class BaseTestsWithRollbackPerTest : BaseTests
{
[SetUp]
public void Setup()
{
this.Transaction = this.ApplicationContext.Database.BeginTransaction();
}
[TearDown]
public void TearDown()
{
this.Transaction.Rollback();
}
}
我的一所大学提出了一个担忧,即如果有人可能会中止测试或关闭他们的 PC/VS2017 挂起等,我们可能会有挥之不去的交易。
我检查了数据库和 XACT_Abort 已关闭,这是一个长期存在的数据库,因此我可能无法更改该设置。
我的问题是 EFCore 的标准流程是什么?它会中止交易还是继续交易?有没有我找不到的设置?任何帮助将不胜感激。