任务 <List<<anonymous type>>>' 不包含 'First' 的定义

Task<List<<anonymous type>>>' does not contain a definition for 'First'

我有一个通用配置 table,其中设置存储为字符串记录。 Table 有 <5 条记录。我需要将此 table 中的数据 return 转换为 json 结果 我这样做过

 return Ok(new
            {
                SNAME = db.PAR.First(p => p.ID == 1).VAL.Trim(),
                PART = db.PAR.First(p => p.ID == 2).VAL.Trim(),
                NRZMAXEDIT = db.PAR.First(p => p.ID == 3).VAL,
            .......
        });

代码可以改进,所以我将其重写为:

  var res = db.PAR.ToList();

    return Ok(new
            {   SNAME = res.First(p => p.ID == 1).VAL,
                PART =res.First(p => p.ID == 2).VAL,
                NRZMAXEDIT = res.First(p => p.ID == 3).VAL,
                  ....
        });

它有效,但如果我使用异步 var res = db.PAR.ToListAsync();,我会收到一个错误:

Task<List<<anonymous type: int ID, string VAL>>> does not contain a definition for First and no extension method First accepting a first argument of type Task<List<<anonymous type: int ID, string VAL>>> could be found (are you missing a using directive or an assembly reference?)

在我使用这样查询的每一行上:

res.First(p => p.ID == 1).VAL,

谢谢

您需要在 db.PAR.ToListAsync() 之前使用 await 关键字,如下所示。

var res = await db.PAR.ToListAsync();

注:ToListAsync()的return类型为Task<List<TSource>>