我想验证事务是否在发生异常时回滚。下面的方法可能引发异常。
using (var transaction = _botContext.Database.BeginTransaction())
{
try
{
await FirstDbUpdate(user, reduceMoney);
await SecondDbUpdate(user, addBill);
transaction.Commit();
}
catch (Exception ex)
{
}
}
回滚
我写了这个测试:
[Test]
public async Task Test_TransactionFail_RevertedUserUpdate()
{
var user = await _userRepository.GetByName("John Doe");
var reduceMoney = 10m;
await _service.Checkout(user, reduceMoney, null);
var userRetrieved = await _userRepository.GetByName("John Doe");
Assert.AreEqual(10, userRetrieved.Budget);
}
所以问题是为什么DbContext会返回
未持久化的数据