У меня есть C# программа, использующая EF Core.
Я получаю свои записи так:
List<MyEntity> candidateRecords = await myFilters.ToListAsync();
Я строю свои фильтры так:
IQueryable<MyEntity> myFilters = from m in context.MyEntity
select m;
if (!string.IsNullOrEmpty(criterion1))
myFilters = myFilters.Where(s => s.SomeColumn.Contains(criterion1));
if (!string.IsNullOrEmpty(criterion2))
myFilters = myFilters.Where(s => s.SomeColumn.Contains(criterion2));
...
Это все работает. Я могу выбрать любую комбинацию критериев для отдельных значений, например, criterion s.Color = "Blue"
.
Но каков синтаксис для фильтрации по всем совпадениям LIST ?
ПРИМЕР ( не работает правильно):
List<string> selectedNames = new List<string>() {"Huey", "Dewey", "Louie"}:
if (!string.IsNullOrEmpty(criterionX))
{
myFilters = myFilters.Where(
record => selectedNames.Contains(record.Name));
...
Допустим, существует несколько записей для всех трех имен. Приведенный выше пример вернет только записи для "Huey"; никакие записи не возвращаются для "Dewey" или "Lou ie".
Вопрос:
Какой правильный синтаксис LINQ для возврата ALL соответствующие записи для КАЖДОГО имени в списке?