Поиск, если какая-либо строка из списка строк находится в таблице - PullRequest
1 голос
/ 07 марта 2019

Я получаю от клиента список строк (элементов, которые он выбрал), и теперь мне нужно вернуть результаты из базы данных. Запрос клиента:

List<string> campaignStrings

Список примеров:

[0] - «292 | Mac / 17 июня»

[1] - «161 | Прямой / 17 июня»

Я пытаюсь без успеха:

var campaigns = ctx.V_CommercialCampaigns.Where(cam => campaignStrings.Any(x => cam.Name.Contains(x))).Select(id => id.Id).ToList();

Я использую «Содержит», поскольку столбец «Имя» может не совпадать с условиями поиска.

Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 07 марта 2019

Если вы хотите проверить, встречается ли cam.Name в списке campaignStrings, вам нужно изменить предложение where на следующее:

.Where(cam => campaignStrings.Any(x => x.Contains(cam.Name)))
1 голос
/ 07 марта 2019

попробуйте с этим решением

var campaigns = ctx.V_CommercialCampaigns.Where(cam => campaignStrings.Contains((cam))).Select(id => id.Id).ToList();
...