2017-04-04 44 views
2

我在我的控制器此数据库调用:ASP网络MVC如何使这个异步?

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

它工作正常,事情是这样的,但我有一个很难使它异步。当我做它异步时,我可以选择表中的所有记录或单个记录,很好。但是,我似乎无法获得与EmployeeId匹配的多个记录。

+1

“当我让异步”,你能请添加代码?这可能是因为一名员工有多个地址! – Anil

+0

是的,一些员工确实有多个地址。那么,如何编写异步代码来检索具有匹配EmployeeId的地址列表? – ASvistun

+0

由于你的代码对我来说似乎是正确的,它应该按预期工作。此外,您可以添加地址和员工实体定义,样本表数据和异步调用代码。 – Anil

回答

2

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

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

作出上述呼吁的异步I改成了:

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); 

    }