Ho tentato di creare una tabella relazionale tra ApplicationUser
e una tabella che ho aggiunto Step
.Come includere ApplicationUser in una tabella/modello relazionale in asp.net mvc
penso di essere un po 'confuso su ciò che è ApplicationUser
versi IdentityUser
versi il UserManager
, ecc
Questo è il mio tentativo di modello.
public class UserStep
{
[ForeignKey("User")]
public string UserId { get; set; }
public int UserStepID { get; set; }
public int StepID { get; set; }
public virtual ApplicationUser User { get; set; }
public virtual Step Step { get; set; }
}
Ho modificato il mio modello in base a nuove informazioni, tuttavia non so ancora se è corretto. Posso tirare un indice dei usersteps con questo:
var userSteps = db.UserSteps.Include(u => u.Step).Include(u => u.User);
return View(userSteps.ToList());
Tuttavia il mio obiettivo è quello di mostrare solo i passaggi associati all'utente corrente. Qualche suggerimento su come cambiare questo per restituire solo l'utente corrente?
Aggiornamento
All'interno del controller per userstep, ho aggiunto questo nuovo metodo e ha creato una vista da esso (che fa saltare in aria). Il mio obiettivo è ottenere un elenco di utenti associati all'utente corrente. Non è questo ciò che hai descritto nel tuo aggiornamento 2?
public ActionResult UserStep()
{
var user = UserManager.FindById(User.Identity.GetUserId());
var userStepsList = db.UserSteps.Where(u => u.UserId == user.Id);
return View(userStepsList);
}
Aggiornato - Versione lavoro
ApplicationUser Modello in IdentityModel
Aggiunto
public virtual ICollection<UserStep> UserSteps { get; set; }
UserStep Modello
public class UserStep
{
[ForeignKey("User")]
public string UserId { get; set; }
public int UserStepID { get; set; }
public int StepID { get; set; }
public virtual ApplicationUser User { get; set; }
public virtual Step Step { get; set; }
}
Passo Modello
Aggiunto
public virtual ICollection<UserStep> UserSteps { get; set; }
regolatore userstep creato e ha creato un nuovo metodo per visualizzare tabella relazionale specifico utente.
public ActionResult UserStep()
{
var user = UserManager.FindById(User.Identity.GetUserId());
var userStepsList = db.UserSteps.Where(u => u.UserId == user.Id).Include(u => u.Step).Include(u => u.User);
return View(userStepsList);
}
Qual è lo scopo di UserStepId? Se UserStep una tabella di join, non è necessario UserStepId – CodeNotFound
Tuttavia, potrebbero esserci più utenti. per esempio, molti passaggi per un utente. Ho modificato il mio codice sopra in base a nuove informazioni. Qualsiasi suggerimento sarà molto apprezzato. –
Kyle - Ho aggiunto un aggiornamento basato sul tuo suggerimento, ma sento che potrebbe mancare qualcosa. –