Как получить элементы, помеченные всеми предоставленными тегами в linq?
Кажется, у меня проблемы с этим. У меня есть таблица задач с идентификатором и таблица тегов, которая имеет поле тега и ограничение внешнего ключа для таблицы задач.
Я хочу иметь возможность выполнять И поиск задач по тегам. Например, если я ищу задачи с тегами «переносимость» и «тестирование», я не хочу, чтобы задачи были помечены как «переносимость», а не «тестирование».
Я попробовал следующий синтаксис:
var tasks = (from t in _context.KnowledgeBaseTasks
where t.KnowledgeBaseTaskTags.Any(x => tags.Contains(x.tag))
select KnowledgeBaseTaskViewModel.ConvertFromEntity(t)
).ToList();
Это, конечно, поиск ИЛИ, а не поиск И. Я не могу понять, как на самом деле переключить это на поиск AND.
редактировать Мне также нужно иметь возможность искать 2 из X тегов, содержащихся в задаче. Таким образом, если задача помечена как «bugfix», «portability», «testing» и я ищу «test» и «portability», эта задача все равно будет отображаться.