ページにはロールがあります。ユーザーにはロールがあります。ユーザーは、1人以上の役割を共有する場合にのみ、ページを閲覧することができます。.NET EntityObjectの2つのコレクションに同じオブジェクトが含まれているかどうかを簡単にどのように確認できますか?
これは動作します:
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
私は私が代わりにLINQやラムダ式と少ないコードでそれを行うことができれば、ネストされたループを使用する必要がありますする必要はありません。
これは常にFalseを返す:
Dim Allow As Boolean = (CurrentPage.Roles.ToList.Intersect(CurrentUser.Roles.ToList).Count > 0)
私は役割がEntityObjectsがあるので、それが失敗したと思います。
ロールIDの値のみを比較して同等性を判断するにはどうすればよいですか?