Linqクエリでナビゲーションプロパティを使用しようとしましたが、結果が得られませんでした。理由は分かりません。ナビゲーションプロパティでLinqを使用する
SQL ServerのEntity Frameworkで標準のシンプルメンバーシップテーブルを使用しています。そこで私は3つのテーブル、AspNetUsers、AspNetRoles、AspNetUserRolesを私のモデルに入れました(下の写真参照)
はい、私はこの役割クエリは、これらのテーブルは使いやすいです
とにかく、私の目標は、ナビゲーションプロパティを使用して特定のユーザーの役割を取得することでした。 AspNetUserRolesは、プライマリキーがないため、エンティティとしてモデルに組み込まれないため、これは適切な方法に見えました。私は、ここで紹介するの提案を使用してみました:
Linq to entities navigation properties
次のLINQクエリは0結果
var result = (from r in context.AspNetRoles
where r.AspNetUsers.Any(u => u.Id == UserId)
select r).ToList();
return result;
思想、多分私はこれを試してみましたので、含める拡張子を使用するために必要な、また0の結果を返しますが返されます
var result = (from r in context.AspNetRoles
where r.AspNetUsers.Any(u => u.Id == UserId)
select r).Include("AspNetUsers").ToList();
return result;
私はラインで何か問題があることを知っています:
where r.AspNetUsers.Any(u => u.Id == UserId)
私はそれを削除すると結果は得られますが、特定のユーザーのためには得られません。
私はここで答えの一つに与えられたアドバイスに従うしようとしています:
任意のアイデア?
ありがとうございます!
あなたが実際にやろうとしていますか?いくつかの文脈、好ましくは1つまたは2つのサンプルモデルを与える。 – stybl
@styblは、質問を編集しました。私はそれが明確になるのを助けることを望む。ありがとう! – xgp