Не могу сделать правильный запрос linq - PullRequest
0 голосов
/ 05 апреля 2020

Я формирую запрос, он работает.

var query = db.Persons.Where(p => p.Date == "27.02.2020").Where(p => p.Country == "USA");

Но так как мне нужно будет использовать его в if-else, я немного изменил его, и теперь он просто выбирает последний Where.

Как решить эту проблему?

var query = db.Persons;

query.Where(p => p.Date == "27.02.2020");
query.Where(p => p.Country == "USA");

1 Ответ

0 голосов
/ 05 апреля 2020

Метод Where, как и все методы LINQ, не изменяет перечисляемый источник на месте, а вместо этого возвращает новый перечисляемый объект, к которому применена операция или, в данном случае, фильтр. .

Это означает, что вам нужно присвоить результат каждой операции обратно в вашу переменную, чтобы он сохранялся. Следующее должно быть эквивалентно вашему исходному фрагменту:

IQueryable<Person> query = db.Persons;
query = query.Where(p => p.Date == "27.02.2020");
query = query.Where(p => p.Country == "USA");

Как указано в комментариях, тип переменной query теперь должен быть совместим с типом db.Persons и тип возврата Where.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...