Bạn đang trộn bao gồm đã lọc với lọc thực thể.
Đã lọc bao gồm
.Include(m => m.Roles.Where(r => roles.Contains(r.Name)))
chỉ lọc các mục trong bộ sưu tập có liên quan (vai trò menu trong trường hợp này).
Để lọc tập thực thể (menu trong trường hợp này), bạn cần thay thế nó bằng Where
thông thường oparator, cho phép lọc mong muốn sẽ là
.Where(m => m.Roles.Any(r => roles.Contains(r.Name)))