PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Ef core 5 muitos para muitos filtro


Você está misturando inclusão filtrada com filtragem de entidade.

Inclusão filtrada
.Include(m => m.Roles.Where(r => roles.Contains(r.Name)))

apenas filtra os itens na coleção relacionada (funções de menu neste caso).

Para filtrar o conjunto de entidades (menus neste caso), você precisa substituí-lo pelo usual Where oparador, que para a filtragem desejada será
.Where(m => m.Roles.Any(r => roles.Contains(r.Name)))