¿Cómo recupero elementos etiquetados con todas las etiquetas suministradas en linq?
Parece que estoy teniendo problemas con esto. Tengo una tabla de tareas con una ID y una tabla de etiquetas, que tiene un campo de etiqueta y una restricción de clave externa para la tabla de tareas.
Quiero poder realizar Y búsquedas de tareas por etiquetas. Entonces, por ejemplo, si busco tareas con las etiquetas "portabilidad" y "prueba", no quiero tareas que estén etiquetadas con "portabilidad" y no "prueba".
Probé la siguiente sintaxis:
var tasks = (from t in _context.KnowledgeBaseTasks
where t.KnowledgeBaseTaskTags.Any(x => tags.Contains(x.tag))
select KnowledgeBaseTaskViewModel.ConvertFromEntity(t)
).ToList();
Por supuesto, esto hace una búsqueda OR, no una búsqueda AND. No puedo entender cómo cambiar esto para que sea una búsqueda AND.
Editar También necesito poder buscar 2 de las X etiquetas que contiene una tarea. Entonces, si la tarea está etiquetada con "corrección de errores", "portabilidad", "prueba" y busco "prueba" y "portabilidad", esa tarea seguirá apareciendo.