Les pages ont des rôles. Les utilisateurs ont des rôles. Un utilisateur peut uniquement afficher une page s'il partage un ou plusieurs rôles.Comment puis-je savoir si deux collections de .NET EntityObjects contiennent l'un des mêmes objets?
Cela fonctionne:
Dim Allow As Boolean = False
CurrentPage.Roles.Load()
For Each r As Role In CurrentPage.Roles
r.Users.Load()
For Each u As User In r.Users
If u.Id = CurrentUser.Id Then
Allow = True
Exit For
End If
Next
If Allow Then
Exit For
End If
Next
Je ne veux pas avoir à utiliser des boucles imbriquées si je peux le faire à la place en moins de lignes de code avec LINQ ou une expression lambda.
Cela revient toujours Faux:
Dim Allow As Boolean = (CurrentPage.Roles.ToList.Intersect(CurrentUser.Roles.ToList).Count > 0)
Je pense qu'il échoue parce que les rôles sont EntityObjects.
Comment puis-je faire comparer uniquement les valeurs Id de rôle pour déterminer l'égalité?