5

我最近有一個MVC 4,.NET 4.5項目,並使用EF 5.0(數據庫優先)使用EF 5.0 DbContext生成器。然後我通過Nuget Manager升級到EF 6.0 alpha 2.我想使用新的異步模式,但出於某種原因,我沒有.ToListAsync()可用。我正在以類似的方式參考上下文:實體框架6 alpha 2 - 異步模式

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

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

     return View(keywords); 
    } 
} 

這是不是在Database First中可用,並且只在Code First中可用?我怎樣才能使上面的例子工作?我正在使用SQL Azure。

回答

8

異步。擴展方法在EF相關的System.Data.Entity.IQueryableExtensions靜態類中定義。因此,您必須添加:

using System.Data.Entity; 

在您的控制器類文件的開頭可以調用它們。

+1

我想知道爲什麼沒有解決。謝謝! – Joe

+1

我花了一天的時間!嘗試在陽光下的一切!直到我讀這篇文章。非常感謝你!!! *嘆* –

0

我認爲你可以使用Task.Run這樣

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

    return View(keywords); 
} 
+0

我想說的是爲什麼不是.ToListAsync()可用時,它應該是什麼? – Joe