LINQ-viele-zu-viele-Beziehung, wie schreibt man eine korrekte WHERE-Klausel?

Ich viele-zu-viele-Beziehung für meine Tabellen.

Gibt es eine Abfrage:

var query = from post in context.Posts
        from tag in post.Tags where tag.TagId == 10
        select post;

Ok, es funktioniert gut. Bekomme ich Beiträge mit dem tag angegebenen id.

Habe ich eine Sammlung von tag-ids. Und ich will posts haben jeden tag in meiner Sammlung.

Ich versuche den folgenden Weg:

var tagIds = new int[]{1, 3, 7, 23, 56};

var query = from post in context.Posts
        from tag in post.Tags where tagIds.Contains( tag.TagId )
        select post;

Funktioniert es nicht. Die Abfrage gibt alle Beiträge, die mit einem der angegebenen tags.

Möchte ich, um eine Klausel wie diese aber dynamicaly für jede Anzahl von tags in der Sammlung:

post.Tags.Whare(x => x.TagId = 1 && x.TagId = 3 && x.TagId = 7 && ... )

InformationsquelleAutor Jean Louis | 2012-05-08

Schreibe einen Kommentar