Task <list << anonymous type =“” >>>'不包含“ First”的定义

时间:2018-09-03 10:58:53

标签: entity-framework asp.net-core entity-framework-core ef-core-2.0

我有一个通用的配置表,其中的设置存储为字符串记录。表格有<5条记录。我需要将此表中的数据返回到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>>>不包含   First的定义,没有扩展方法First接受   可以找到类型Task<List<<anonymous type: int ID, string VAL>>>的第一个参数(是否缺少using指令或   程序集参考?)

在我使用类似查询的每一行上:

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

谢谢

1 个答案:

答案 0 :(得分:1)

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

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

注意ToListAsync()的返回类型为Task<List<TSource>>