【问题标题】:When use async/await on .net core web-api with repository pattern?何时在具有存储库模式的 .net core web-api 上使用 async/await?
【发布时间】:2020-09-16 20:38:12
【问题描述】:

我正在尝试使用用户 CRUD 编写一个简单的 Web api 服务,我对在存储库模式中使用 async/await 方法有点困惑...... 模式流程是:控制器 > 博客 > 存储库 我必须在哪里使用异步/等待方法? 在所有层中还是仅在顶部(控制器层)?

【问题讨论】:

  • 异步需要一直使用下去。任何级别的同步方法都会引入一个块,这违背了异步的目的。
  • 请在您的问题中添加更详细的信息并添加您尝试过的代码示例。
  • 这能回答你的问题吗? Architecture for async/await

标签: c# async-await repository-pattern asp.net-core-3.1 mongorepository


【解决方案1】:

async 在您的代码结构中“冒泡”,因此显然异步代码的主要来源应该是您的存储库层,但要利用它异步,您需要使所有调用代码也异步(或者只是返回 Task<T> 如果调用者只是传递结果而不对它们做任何事情)否则您将需要阻止异步调用,这基本上不仅会消除所有可能的收益,而且在某些情况下还会引入问题。

另外请阅读this的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-17
    • 2012-02-24
    • 2021-11-18
    • 2019-06-08
    • 2014-01-26
    • 2015-09-28
    • 1970-01-01
    相关资源
    最近更新 更多