创建包含linq查询的异步方法

时间:2019-07-09 17:15:54

标签: linq asp.net-core entity-framework-core

我有一个使用实体框架的.Net Core 2.2 Web应用程序。

在项目中,我有一个使用Linq联接两个表,然后使用Select创建节点模型的控制器,如下所示:

    [HttpGet("GameDownloadLinks/{libraryId}")]
    public async Task<ActionResult<IEnumerable<GameDownloadLinks>>> GetGameLinksForlibraryAsync(Guid libraryID)
    {
        var libraryGameLinks =  (from gk in _context.GameLinks
                                   join gl in _context.GameList on gk.GameId equals gl.GameId
                                   where gl.libraryId == libraryId
                                   select new GameDownloadLinks
                                   {
                                       LibraryId = gl.libraryId,
                                       LinkText = gk.LinkText,
                                       Price = gk.Price,
                                       GameId = gl.GameId
                                   }).ToList();

        var asyncGameDownloadLinks = await Task.WhenAll(libraryGameLinks).toListAsync();
        return asyncGameDownloadLinks;
    }

我正在尝试使此方法异步,但出现此错误:

cannot convert from 'System.Collections.Generic.List<Models.GameDownloadLinks>'  to 'System.Collections.Generic.IEnumerable<System.Threading.Tasks.Task>'

我针对类似问题找到的一些答案表明,这很可能是由于方法声明中缺少async关键字,但我已将其包含在我的内容中。

反正有这项工作吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

尝试

onMouseOver