如何在实体框架中处理重试和添加的实体

时间:2019-10-08 20:10:33

标签: c# entity-framework-core

我的项目已经定义了重试和事务策略。我在当前的工作流程上遇到了麻烦:

  1. 使用重试策略启动交易

  2. 查询我的Foo实体(如果不存在),在上下文中插入

  3. 运行其他由于瞬时事务而失败的操作

发生重试策略并再次运行步骤2时,查询不会返回先前添加的实体,但它在context.ChangeTracker.Entries()中的名称为Added。步骤2添加了另一个实体,最后得到了RepositoryDuplicateKeyException

是否有更好的方法将添加的实体包括在查询中,还是必须手动检查ChangeTracker中的实体?

当前,我忽略了RepositoryDuplicateKeyException,它似乎也很笨拙。

0 个答案:

没有答案