PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Ef core 5 filtre plusieurs à plusieurs

Vous mélangez les inclusions filtrées avec le filtrage des entités.

Inclure filtrée

.Include(m => m.Roles.Where(r => roles.Contains(r.Name)))

filtre simplement les éléments de la collection associée (rôles de menu dans ce cas).

Afin de filtrer l'ensemble d'entités (les menus dans ce cas), vous devez le remplacer par l'habituel Where opérateur, qui pour le filtrage souhaité sera

.Where(m => m.Roles.Any(r => roles.Contains(r.Name)))