💡 原文英文,约400词,阅读约需2分钟。
📝

内容提要

在使用EF Core和Postgres并行查询时,可能会出现“命令正在进行中”的错误,因为Postgres不支持同一连接的并行查询。可以通过使用不同的数据库上下文或顺序执行查询来解决此问题。并行查询可能导致死锁或超时,建议谨慎使用。

🎯

关键要点

  • 在使用EF Core和Postgres并行查询时,可能会出现“命令正在进行中”的错误。
  • Postgres不支持同一连接的并行查询,导致执行失败。
  • 可以通过使用不同的数据库上下文或顺序执行查询来解决此问题。
  • ExecuteDeleteAsync()立即运行SQL查询,无需调用SaveChangesAsync()。
  • Task.WhenAll()允许并发等待任务,但在Postgres中不支持同一连接的并行执行。
  • 如果城市和天气预报之间有外键关系,且有CASCADE限制,则可以正常执行。
  • SQL Server默认关闭并行查询执行,但可以通过设置MultipleActiveResultSets=True来启用。
  • 并行查询执行可能导致死锁或超时,需谨慎使用。
  • 使用不同连接的查询可以在I/O级别并行执行,数据库也会并行处理。
➡️

继续阅读