2017-04-04 13 views
2

私は私のコントローラでは、このデータベース呼び出しを持っている:ASP Net MVCこれを非同期にする方法は?

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

それは罰金それがあるように動作しますが、私はそれを非同期にするに苦労しています。非同期にすると、テーブル内のすべてのレコードまたは単一のレコードを選択できます。しかし、私はEmployeeIdと一致する複数のレコードを取得することはできません。

+1

「私はそれが非同期作る行うと」、することができますコードも追加してください。ある従業員が複数のアドレスを持っている可能性があります。 – Anil

+0

はい、従業員の中には複数の住所があります。では、EmployeeIdと一致するアドレスのリストを取得するための非同期コードの記述方法を教えてください。 – ASvistun

+0

コードが正しいと思われ、期待どおりに動作するはずです。さらに、AddressesとEmployeeエンティティ定義、サンプルテーブルデータ、および非同期コールコードを追加できます。 – Anil

答えて

2

私自身の質問に解決策が見つかりました。

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

    } 
関連する問題