में एक रिलेशनल टेबल/मॉडल में एप्लिकेशन यूज़र को कैसे शामिल करें I ApplicationUser
और एक तालिका जो मैंने Step
जोड़ा है, के बीच एक संबंध तालिका बनाने का प्रयास कर रहा है।एएसपीनेट एमवीसी
मुझे लगता है कि मैं एक छोटे से क्या ApplicationUser
कविता IdentityUser
UserManager
कविता है लेकर संदेह में हूँ, आदि
यह मॉडल पर मेरे प्रयास है।
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; }
}
मैंने नई जानकारी के आधार पर अपना मॉडल समायोजित किया है, हालांकि मुझे अभी भी पता नहीं है कि यह सही है या नहीं। मैं इस के साथ usersteps के एक सूचकांक खींच कर सकते हैं:
var userSteps = db.UserSteps.Include(u => u.Step).Include(u => u.User);
return View(userSteps.ToList());
हालांकि मेरा लक्ष्य केवल वर्तमान उपयोगकर्ता के लिए जुड़े चरण दिखाने का है। केवल वर्तमान उपयोगकर्ता को वापस करने के लिए इसे बदलने के तरीके पर कोई सुझाव?
अद्यतन
userstep के लिए नियंत्रक के भीतर, मैं इस नई विधि को जोड़ कर उसे से एक दृश्य (जो ऊपर चल रही है) बनाया है। मेरा लक्ष्य वर्तमान उपयोगकर्ता से जुड़े उपयोगकर्तास्टेप्स की एक सूची प्राप्त करना है। क्या यह आपके अपडेट 2 में वर्णित नहीं है?
public ActionResult UserStep()
{
var user = UserManager.FindById(User.Identity.GetUserId());
var userStepsList = db.UserSteps.Where(u => u.UserId == user.Id);
return View(userStepsList);
}
अपडेट किया गया - कार्य संस्करण
ApplicationUser मॉडल IdentityModel में
जोड़ा गया
public virtual ICollection<UserStep> UserSteps { get; set; }
UserStep मॉडल
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; }
}
चरण मॉडल
जोड़ा गया
public virtual ICollection<UserStep> UserSteps { get; set; }
बनाया userstep नियंत्रक और उपयोगकर्ता विशिष्ट रिलेशनल तालिका देखने के लिए एक नई विधि का निर्माण किया।
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);
}
UserStepId का उद्देश्य क्या है? यदि UserStep एक जॉइन टेबल में है तो आपको UserStepId – CodeNotFound
की आवश्यकता नहीं है हालांकि कई उपयोगकर्तास्टेप हो सकते हैं। उदाहरण के लिए, एक उपयोगकर्ता के लिए कई कदम। मैंने नई जानकारी के आधार पर उपरोक्त अपना कोड समायोजित किया है। किसी सुझाव के लिए बहुत आभारी होंगे। –
केली - मैंने आपके सुझाव के आधार पर एक अद्यतन जोड़ा, लेकिन मुझे लगता है कि मुझे कुछ याद आ रहा है। –