Task‹List‹‹anonymous type›››» не содержит определения для «First»

У меня есть общая таблица конфигурации, в которой настройки хранятся в виде строковых записей. В таблице ‹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,
                  ....
        });

Это работает, но если я использую async 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,

Благодарность


person mrapi    schedule 03.09.2018    source источник
comment
Вы забыли await ключевое слово: var res = await db.PAR.ToListAsync();   -  person Bagdan Gilevich    schedule 03.09.2018


Ответы (1)


Вам нужно использовать ключевое слово await перед db.PAR.ToListAsync(), как показано ниже.

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

Примечание. Тип возвращаемого значения ToListAsync() – Task<List<TSource>>.

person vivek nuna    schedule 03.09.2018