【问题标题】:Reset EF DBContext after SaveChanges Rollback DbContextTransactionSaveChanges 回滚 DbContextTransaction 后重置 EF DBContext
【发布时间】:2020-10-16 23:04:40
【问题描述】:

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

  1. DBContext 处于初始状态
  2. 创建交易
  3. 做一些工作: 3.1 创建父实体的子实体并保存实体 3.2调用上下文的SaveChanges
  4. 之后抛出异常
  5. 调用事务回滚:

预期:数据既未保存在数据库中,也未保存在 DBContext 中 会发生什么:数据未保存在数据库中但它仍然存在于上下文中!!

我尝试使用 ChangeTracker,但所有实体状态都是 Unchanged 。

所以问题是:如何在调用 SaveChanges 后回滚上下文中的修改。

我希望得到帮助,因为我花了很多时间尝试许多论坛的解决方案

【问题讨论】:

    标签: entity-framework entity-framework-6 dbcontext rollback savechanges


    【解决方案1】:

    如何在调用 SaveChanges 后回滚 Context 中的修改。

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

    【讨论】:

    • 感谢您的解决方案,这样做是最佳做法吗?
    猜你喜欢
    • 2014-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多