我的项目已经定义了重试和事务策略。我在当前的工作流程上遇到了麻烦:
使用重试策略启动交易
查询我的Foo
实体(如果不存在),在上下文中插入
运行其他由于瞬时事务而失败的操作
发生重试策略并再次运行步骤2时,查询不会返回先前添加的实体,但它在context.ChangeTracker.Entries()
中的名称为Added
。步骤2添加了另一个实体,最后得到了RepositoryDuplicateKeyException
。
是否有更好的方法将添加的实体包括在查询中,还是必须手动检查ChangeTracker
中的实体?
当前,我忽略了RepositoryDuplicateKeyException
,它似乎也很笨拙。