【问题标题】:ASP Net MVC how to make this async?ASP Net MVC 如何使这个异步?
【发布时间】:2017-08-29 03:34:00
【问题描述】:

我的控制器中有这个数据库调用:

var addresses = db.Addresses.Where(a=>a.EmployeeId == id).ToList();

它的工作方式很好,但我很难让它异步。当我让它异步时,我可以选择表中的所有记录或单个记录,就可以了。但是,我似乎无法获得匹配 EmployeeId 的多条记录。

【问题讨论】:

  • “当我让它异步时”,你能也添加代码吗?可能是因为一名员工有多个地址!
  • 是的,有些员工确实有多个地址。那么,如何编写异步代码来检索具有匹配 EmployeeId 的地址列表?
  • 因为您的代码对我来说似乎是正确的,它应该可以按预期工作。此外,您可以添加地址和员工实体定义、示例表数据和异步调用代码。

标签: asp.net model-view-controller entity-framework-5


【解决方案1】:

我找到了自己问题的解决方案。

var addresses = db.Addresses.Where(a=>a.EmployeeId == id).ToList();

为了使上述调用异步,我将其更改为:

var addresses = await db.Addresses.Where(a=>a.EmployeeId == id).ToListAsync();

整个方法如下所示:

  public async Task<ActionResult> FindAddress(int? id)
    {
        if(id == null)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        var addresses = await db.Addresses.Where(a=>a.EmployeeId == id).ToListAsync();

        if (addresses == null)
            return HttpNotFound();

        return View(addresses);

    }

【讨论】:

    猜你喜欢
    • 2013-10-17
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 2017-01-21
    • 1970-01-01
    相关资源
    最近更新 更多