WebApi .Net Core错误,因为其中不包含GetAwaiter的定义

时间:2018-12-02 18:01:20

标签: c# asp.net-core

我是.NET Core的新手,正在阅读本文档https://docs.microsoft.com/en-us/aspnet/core/web-api/?view=aspnetcore-2.1

我从那里开始练习-我写这个逻辑:

public async Task<ActionResult<List<DashBoar>>> GetAllAsync()
{
    var x = _Repo.GetPetsAsync();
    return await x.ToList();
}

但是我遇到了错误。

我的回购课程是

public IEnumerable<DashBoar> GetPetsAsync()
{
    var x = from n in _context.DashBoar
            select n;
    return  x.ToList();
}

1 个答案:

答案 0 :(得分:2)

您首先应该了解什么是异步编程以及await,async和Task的相互关系。

异步编程用于提高应用程序性能和增强响应能力。请参考底部的链接以了解情况。

首先让我们解决您的问题。 将您的repo类返回类型设为Tak

public async Task<IEnumerable<DashBoar>> GetPetsAsync()
{
     var x = await (from n in _context.DashBoar
             select n).ToListAsync();

     return x;
}

然后从GetAllAsync()方法中调用repo方法,如下所示

public async Task<ActionResult<List<DashBoar>>> GetAllAsync()
{
     var x = await _Repo.GetPetsAsync();
     return x;
}

请通过以下链接以更好地理解异步编程。

https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/ https://www.youtube.com/watch?v=C5VhaxQWcpE

https://www.dotnetperls.com/async

祝你好运..