Como recupero itens marcados com todas as tags fornecidas no linq?
Parece que estou tendo problemas com isso. Eu tenho uma tabela de tarefas com um ID e uma tabela de tags, que possui um campo de tags e uma restrição de chave estrangeira para a tabela de tarefas.
Quero poder executar AND procura tarefas por tags. Por exemplo, se eu procurar tarefas com as tags "portabilidade" e "teste", não quero tarefas marcadas com "portabilidade" e não "teste".
Eu tentei a seguinte sintaxe:
var tasks = (from t in _context.KnowledgeBaseTasks
where t.KnowledgeBaseTaskTags.Any(x => tags.Contains(x.tag))
select KnowledgeBaseTaskViewModel.ConvertFromEntity(t)
).ToList();
Obviamente, isso faz uma pesquisa OR, não uma pesquisa AND. Não consigo descobrir como realmente mudar isso para ser uma pesquisa AND.
Editar Também preciso pesquisar 2 das tags X que uma tarefa contém. Portanto, se a tarefa estiver marcada com "bugfix", "portability", "testing" e eu procurar "testing" e "portability", essa tarefa ainda será exibida.