Wie kann ich Elemente abrufen, die mit allen in linq angegebenen Tags versehen sind?

Ich scheine Probleme damit zu haben. Ich habe eine Aufgabentabelle mit einer ID und eine Tag-Tabelle mit einem Tag-Feld und einer Fremdschlüssel-Einschränkung für die Aufgabentabelle.

Ich möchte in der Lage sein, UND Aufgaben anhand von Tags zu suchen. Wenn ich beispielsweise nach Aufgaben mit den Tags "Portabilität" und "Testen" suche, möchte ich keine Aufgaben, die mit "Portabilität" und nicht mit "Testen" gekennzeichnet sind.

Ich habe die folgende Syntax ausprobiert:

 var tasks = (from t in _context.KnowledgeBaseTasks
                     where t.KnowledgeBaseTaskTags.Any(x => tags.Contains(x.tag))
                     select KnowledgeBaseTaskViewModel.ConvertFromEntity(t)
                    ).ToList();

Dies führt natürlich eine ODER-Suche durch, keine UND-Suche. Ich kann nicht herausfinden, wie ich dies tatsächlich in eine AND-Suche umwandle.

Bearbeite Ich muss auch in der Lage sein, nach 2 von X Tags zu suchen, die eine Aufgabe enthält. Wenn die Aufgabe also mit "Bugfix", "Portabilität", "Testen" gekennzeichnet ist und ich nach "Testen" und "Portabilität" suche, wird diese Aufgabe weiterhin angezeigt.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage