Mieszasz filtrowane dołączenia z filtrowaniem jednostek.
Filtrowane uwzględnij
.Include(m => m.Roles.Where(r => roles.Contains(r.Name)))
po prostu filtruje elementy w powiązanej kolekcji (w tym przypadku role menu).
Aby filtrować zestaw encji (w tym przypadku menu), musisz zastąpić go zwykłym Where
operator, który dla żądanego filtrowania będzie
.Where(m => m.Roles.Any(r => roles.Contains(r.Name)))