Du blandar filtrerad inkludering med entitetsfiltrering.
Filtrerade inkluderar
.Include(m => m.Roles.Where(r => roles.Contains(r.Name)))
filtrerar bara objekten i den relaterade samlingen (menyroller i det här fallet).
För att filtrera entitetsuppsättningen (menyer i det här fallet) måste du ersätta den med den vanliga Where
oparator, vilket för den önskade filtreringen kommer att vara
.Where(m => m.Roles.Any(r => roles.Contains(r.Name)))