Как исправить «выражение не может содержать динамическую операцию» в Linq? - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть запрос PUT, в котором я передал строковое значение json, которое содержит значение идентификатора и другие переменные и значения.После чего я deserialize это и найду идентификатор из json в базе данных, а затем обновлю значения:

 var bookininput = JsonConvert.DeserializeObject<dynamic>(value);

 if (bookininput.id == null || bookininput.id == 0)
 {
     return BadRequest("no id provided");
 }
 else { 
     var log = _context.BIBOLogs.Where(input => input.Id == bookininput.id); 
 }

Однако, я сталкиваюсь с проблемами в .Where(input => input.Id == bookininput.id);, потому что этоговорит мне, что bookininput.id является динамическим и не может быть использован для поиска.Есть ли другие способы обойти это?

1 Ответ

0 голосов
/ 22 февраля 2019

Попробуйте использовать известный класс / тип при выполнении фильтра вместо dynamic.Я предполагаю, что bookininput.id равно int в следующем примере:

var bookininput = JsonConvert.DeserializeObject<dynamic>(value);
if (bookininput.id == null || bookininput.id == 0)
{
    return BadRequest("no id provided");
}
else 
{
    int inputId = int.Parse(bookininput.id);

    var log = _context.BIBOLogs
        .Where(input => input.Id == inputId);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...