Entity framework 如何强制回滚事务entityframework

Entity framework 如何强制回滚事务entityframework,entity-framework,integration-testing,Entity Framework,Integration Testing,即使SaveChanges()方法成功,我如何强制回滚它?您需要将其包装成一个,然后在不完成作用域的情况下将其处理掉 using (var scope = new TransactionScope( TransactionScopeOption.Required, System.TimeSpan.MaxValue )) { /* your code goes here */ } 如果要实际保存更改,请调用scope.Complete() 有关详细信息,请参阅此部分。在执行保存更改后,Tra

即使SaveChanges()方法成功,我如何强制回滚它?

您需要将其包装成一个,然后在不完成作用域的情况下将其处理掉

using (var scope = new TransactionScope( TransactionScopeOption.Required, System.TimeSpan.MaxValue ))
{
  /* your code goes here */
}
如果要实际保存更改,请调用
scope.Complete()


有关详细信息,请参阅此部分。

在执行保存更改后,TrasactionScope是否会从数据库中删除数据?任何常规事务都会这样做。它将执行回滚,因此数据不会保存,但是如果您有自动递增Id,它们将递增。我可以在回滚之前使用linq to entities查询要测试的数据库吗?只要它都包含在相同的范围内,就可以查询数据库(在我的示例中,using语句中存在所有内容),并且它将返回更新的数据。一旦范围被释放,所有内容都将回滚。