抱えていた問題を解決しましたが、何かがどのように機能するか (または機能しないか) はわかりましたが、その理由は明確ではありません。
私は「なぜ」を知るのが好きなタイプの人なので、誰かが説明できることを願っています:
アイテムのリストと関連するコメントがあり、管理者のコメントとユーザーのコメントを区別したかったので、次のコードを試しました。
User commentUser = userRepository.GetUserById(comment.userId);
Role commentUserRole = context.Roles.Single(x=>x.Name == "admin");
if(commentUser.Roles.Contains(commentUserRole)
{
//do stuff
}
else
{
// do other stuff
}
コードをステップ実行すると、正しい Role オブジェクトがあるにもかかわらず、commentUser.Roles の役割が認識されないことがわかりました。
最終的に機能したコードは次のとおりです。
if(commentUser.Roles.Any(x=>x.Name == "admin"))
{
//do stuff
}
コードが少なくなり、私の意見ではよりきれいになったので、私はこれに満足していますが、contains がどのように機能しなかったのか理解できません。
誰かが私のためにそれを片付けてくれることを願っています。