5

Niedawno miałem projekt z MVC 4, .NET 4.5 i używając EF 5.0 (Baza danych jako pierwsza) przy użyciu Generatora DbContext EF 5.0. Następnie zaktualizowałem program Nuget Manager do wersji EF 6.0 alfa 2. Chciałem użyć nowych asynchronicznych wzorców, ale z jakiegoś powodu nie mam dostępnej metody .ToListAsync(). Odwołuję się do kontekstu w podobny sposób:Encje Framework 6 alpha 2 - Async Patterns

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

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

     return View(keywords); 
    } 
} 

Czy to nie jest dostępne w bazie danych First i dostępne tylko w Code First? Jak mogę zrobić coś podobnego do powyższego przykładu? Korzystam z SQL Azure.

Odpowiedz

8

Async. Metody rozszerzeń są zdefiniowane w klasie statycznej związanej z EF: System.Data.Entity.IQueryableExtensions. Musisz więc dodać:

using System.Data.Entity; 

na początku pliku klasy kontrolera, aby móc do nich zadzwonić.

+1

Zastanawiam się, dlaczego to nie rozwiązało. Dzięki! – Joe

+1

Spędziłem ponad dzień na tym! Próbując wszystkiego pod słońcem! Aż przeczytam ten post. Dziękuję Ci bardzo!!! *westchnienie* –

0

myślę, że można użyć Task.Run jak ten

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

    return View(keywords); 
} 
+0

Próbuję powiedzieć, dlaczego nie jest dostępna funkcja .ToListAsync(), kiedy powinna być? – Joe

Powiązane problemy