EF Core在SaveChanges上执行先前失败的查询



我们有一个.Net Core 3.1应用程序,它使用EF CoreSQL Server数据库连接。我们面临一个问题,当exception由于某种原因发生在我们的方法中时,例如,在DB和SaveChanges中,Exception被引发,因为该字段的值被传递为null,然后下一次,当使用不同的参数调用相同的方法时(即使使用所有正确/强制字段),仍然在EF Core中执行旧查询(我在Output窗口中检查了这一点)。这是非常奇怪和奇怪的行为。

如果我们在第一个异常之后关闭应用程序(在调试环境中),并在下次使用正确的负载重新运行应用程序,那么一切都可以正常工作。可能是EF Core由于某种原因再次重试先前失败的查询?或者为什么会发生这种行为?

根据您从队列中获取消息的方式,如果消息在一段时间后未被确认,则消息可能会返回到队列中。

自动确认消息将被永久删除。如果在数据库中持久化之后返回,则任何异常都将避免返回,因此消息将返回到队列。

我刚刚发现RabbitMQ的消费者类没有在依赖配置文件中正确设置。基本上,库用例在依赖配置中被实例化为静态成员,当为RabbitMQ设置消费者时,它们被传递到这些静态库对象中。我删除了这些静态对象,并使用了存储库的Scoped实例。我的问题解决了。

最新更新