5

私は最近MVC 4、.NET 4.5、EF 5.0 DbContext Generatorを使用したEF 5.0(データベースファースト)のプロジェクトを持っています。その後、Nuget Managerを使ってEF 6.0 alpha 2にアップグレードしました。新しい非同期パターンを使用したかったのですが、何らかの理由で.ToListAsync()を使用できませんでした。エンティティフレームワーク6アルファ2 - 非同期パターン

public class HomeController : Controller 
{ 
    TestContext db = new TestContext(); 

    public async Task<ActionResult> Index() 
    { 
     var keywords = await db.Keywords.ToListAsync(); 

     return View(keywords); 
    } 
} 

これはデータベースファーストでは利用できず、コードファーストでのみ利用できますか?上の例のようなものを作るにはどうすればいいですか?私はSQL Azureを使用しています。

答えて

8

非同期のようなTask.Runを使用することができると思います。拡張メソッドは、EF関連の静的クラスSystem.Data.Entity.IQueryableExtensionsで定義されています。したがって、コントローラークラスファイルの先頭に、それらを呼び出すことができるように、

using System.Data.Entity; 

を追加する必要があります。

+1

なぜそれが解決しなかったのだろうか?ありがとう! – Joe

+1

私は1日以上これを費やしました!すべての太陽の下で試してみよう!私はこの記事を読むまで。どうもありがとうございました!!! *一口* –

0

私はあなたがこの

public async Task<ActionResult> Index() 
{ 
    var keywords = await Task.Run(() => db.Keywords.ToList()); 

    return View(keywords); 
} 
+0

私が言おうとしているのは、なぜそれが必要なときに.ToListAsync()を利用できないのかということです。 – Joe