5

我最近有一个使用 MVC 4、.NET 4.5 并使用 EF 5.0(数据库优先)使用 EF 5.0 DbContext Generator 的项目。然后我通过 Nuget Manager 升级到 EF 6.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);
    }
}

这在 Database First 中不可用,而仅在 Code First 中可用?我怎样才能使上面的例子起作用?我正在使用 SQL Azure。

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 回答