У меня есть ViewModel, которая должна включать в себя как все данные о текущем пользователе, так и все сведения о плане, в котором они зарегистрированы:
public class SubscribeViewModel
{
public ApplicationUser User { get; set; }
public Plans Plan { get; set; }
public string StripePublishableKey { get; set; }
public string StripeToken { get; set; }
}
У каждого пользователя есть PlanId. Так что я пытаюсь сделать что-то вроде:
SELECT * FROM Plans WHERE Id = (SELECT PlanId FROM Users WHERE UserId = CurrentUsersId);
Мой контроллер, пока что:
[Authorize]
public ActionResult Subscribe()
{
string CurrentUser = User.Identity.GetUserId();
SubscribeViewModel model = new SubscribeViewModel()
{
User = UserManager.FindById(CurrentUser),
Plan = db.Plans.Where(a => a.Id == (db.Users.Where(b => b.Id == CurrentUser).Select(PlanId))
};
return View(model);
}
Я застрял в последней части запроса плана, не знаю, как выбрать только идентификатор пользователя текущего пользователя.