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