SQLを使用すると、次のようになります...
SELECT G.* FROM GOAL G
INNER JOIN Plan P ON
P.planID = G.planID
INNER JOIN User U ON
U.userID = P.userID
WHERE U.userID = @userID
私のコントローラー(MVC4)では"ActionResult Edit"
、次の2つのクエリを実行していますが、1つだけを実行するにはどうすればよいですか? 目標は、ユーザーが自分のデータに対してのみ「編集」アクションを実行できるようにすることと、他の誰かの目標に対して実行できるようにすることです。
var plan = db.Plan.Where(b => b.UserID == CurrentUserID).FirstOrDefault();
Goal goal = db.Goals
.Where(b => b.PlanID == plan.ID)
.FirstOrDefault();
return View(goal);
モデル
public class Plan
{
public int ID { get; set; }
[Required]
public int UserID { get; set; }
}
[Table("PlanGoal")]
public class Goal
{
public int ID { get; set; }
[Required]
public int PlanID { get; set; }
}