4

データベースに 2 つのテーブルがあり、1 つはプロジェクト メンバー用、もう 1 つはプロジェクト用 です。ユーザーを認証した後、ID を取得しました。私のプロジェクト メンバー テーブルには、プロジェクト ID とユーザー ID があります。を使用して、このユーザーのプロジェクト メンバーのリストを取得できます。

 var pm = db.ProjectMembers.Where(c=> c.UserID=u.UserID) ;

私の質問は、上記のリストから ProjectID のリストを取得する方法です。次に、ProjectID のリストを使用して Project テーブルからプロジェクトのリストを取得するにはどうすればよいですか。

4

1 に答える 1

2

あなたの質問の最初の部分:

var projectIDs = db.ProjectMembers.Where(c=> c.UserID=u.UserID).select(pm=>pm.ProjectID) ;

第二部:

Entity Frameworkを使用している場合は、ProjectMembersリストのすべてのエンティティに(project)というプロパティが表示されます。この回答の最初の部分を無視して、直接この回答に進むことができます。

var projectsList = db.ProjectMembers.Where(c=> c.UserID=u.UserID).select(pm=>pm.Project) ;

プロパティの名前が異なる場合があります。試してみて、何が起こったのか教えてください。

注:取得したプロジェクトがnullの場合、Entity FrameworkはEagerの読み込み(Google it)で機能していることに注意してください。したがって、Entity Frameworkがプロジェクトデータを取得するための適切なSQL構文を生成できるようにするには、次のようにクエリにInclude()を追加します。

var projectsList = db.ProjectMembers.Where(c=> c.UserID=u.UserID).Include("Projects").select(pm=>pm.Project) ;
于 2012-04-05T12:27:09.237 に答える