5

最近、MVC 4、.NET 4.5を使用し、EF 5.0 DbContextGeneratorを使用してEF5.0(データベースファースト)を使用するプロジェクトがあります。次に、NugetManagerを介してEF6.0 alpha 2にアップグレードしました。新しい非同期パターンを使用したかったのですが、何らかの理由で.ToListAsync()を使用できませんでした。私は同様の方法でコンテキストを参照しています:

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

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

        return View(keywords);
    }
}

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

4

2 に答える 2

8

非同期。拡張メソッドは、EF関連System.Data.Entity.IQueryableExtensionsの静的クラスで定義されます。したがって、次を追加する必要があります。

using System.Data.Entity;

コントローラクラスファイルの先頭で、それらを呼び出すことができます。

于 2012-12-30T20:59:07.370 に答える
0

Task.Runはこんな感じで使えると思います

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

    return View(keywords);
}
于 2012-12-30T20:47:32.710 に答える