在SaveChanges回滚DbContextTransaction之后重置EF DBContext

问题描述

我在EntityFrameWork 6.1的UOW设计模式中使用DbContextTransaction,除了在事务回滚后回滚DBContext之外,其他一切都可以 我的意思是这样的:

  1. DBContext处于初始状态
  2. 创建交易
  3. 做一些工作: 3.1 创建父实体的子代并保存该实体 3.2 调用上下文的SaveChanges
  4. 此后引发异常
  5. 呼叫交易回滚:

预期:数据未保存在数据库或DBContext中 发生了什么:数据没有保存在数据库但仍然在上下文中存在!

我尝试使用ChangeTracker,但所有实体状态均未更改。

所以,问题是:如何在调用SaveChanges后也回滚Context中的修改

我希望能有所帮助,因为我花了大量时间尝试许多论坛的解决方

解决方法

如何在调用SaveChanges之后如何在上下文中回滚修改。

你不知道。只需创建一个新的DbContext实例。保留DbContext中未保存的更改,因为您可能要在回滚后重试SaveChanges。