【发布时间】:2020-05-16 05:44:29
【问题描述】:
我来向您寻求建议。我正在开发一个需要外部库的控制台应用程序(服务器)。
我使用实体框架核心。但是我对 async / await 的概念仍然存在差距。我已经阅读了很多东西,尝试了很多东西。
我建立了一个关于数据库和ECS(实体组件系统)架构的Entity / DAL / BLL架构。
我有调用事件 (OnInitialized) 的系统。 在这种情况下,我需要从数据库中加载不同的数据(取决于系统)。
不可能在同一个 DbContext 上同时进行多个并行查询。我只有一个包含多个表的数据库。
那么我应该开发与数据库完全同步的交互吗?
或者是否有同时使用多个异步的模式?
【问题讨论】:
-
对于控制台应用程序,我会坚持使用同步方法。对于 EF,异步版本主要用于保持 UI 线程响应。
-
只要您不在多个场景中重用相同的实例数据库上下文,异步将永远不会并行运行您的查询。
-
@JohnathanBarclay 是的,但在我的情况下,当我启动服务器(dotnet)时,这会创建与库的通信。多个客户端可以同时执行相同的查询命令。那么,使用异步查询不要“阻止”其他客户端的执行不是更好吗?在这个应用程序中,我可以显示消息/UI 界面。
标签: c# async-await entity-framework-core entity-component-system