2017-04-04 14 views
2

나는 내 컨트롤러에서이 데이터베이스 호출이 : 그것은 잘 그것이 방식으로 작동ASP Net MVC이 비동기를 만드는 방법은 무엇입니까?

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

을,하지만 난 비동기를 만들기 위해 힘든 시간을 보내고 있어요. 비동기로 만들면 테이블의 모든 레코드 또는 단일 레코드를 선택할 수 있습니다. 그러나, 나는 EmployeeId와 일치하는 여러 레코드를 얻을 수 없습니다.

+1

을 : 전체 방법은 다음과 같이됩니다

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

:

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

내가 그것을 변경 위의 호출 비동기를 만들려면 코드도 추가하십시오. 한 명의 직원이 여러 개의 주소를 가지고 있기 때문일 수 있습니다! – Anil

+0

예, 일부 직원은 여러 주소를 가지고 있습니다. 그렇다면 EmployeeId가 일치하는 주소 목록을 검색하는 비동기 코드를 작성하는 방법은 무엇입니까? – ASvistun

+0

코드가 올바른 것처럼 보이며 예상대로 작동해야합니다. 또한 Addresses 및 Employee 엔티티 정의, 샘플 테이블 데이터 및 비동기 호출 코드를 추가 할 수 있습니다. – Anil

답변

2

나는 내 자신의 질문에 대한 해결책을 찾았습니다. 당신이 할 수있는, "나는 비동기해야합니까 때"

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

    }