2015-08-19 37 views
0

我很新的MVC5和.NET。我使用的ASP应用程序用户,并有一个额外的表病人:从另一个表生成表 - MVC5

[DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public Guid PatientId { get; set; } 

[ForeignKey("User")] 
    [Display(Name = "User Id")] 
    public string UserId { get; set; } 
    public virtual ApplicationUser User { get; set; } 

我的AccountController是:

[HttpPost] 
    [AllowAnonymous] 
    [ValidateAntiForgeryToken] 
    public async Task<ActionResult> Register(RegisterViewModel model) 
    { 

     if (ModelState.IsValid) 
     { 
      var user = new ApplicationUser 
      { 
       UserName = model.Email, 
       Email = model.Email, 
       Title = model.Title, 
       FirstName = model.FirstName, 
       LastName = model.LastName, 
       DOB = model.DOB, 
       Gender = model.Gender, 
       ContactNumber = model.ContactNumber, 
       Address1 = model.Address1, 
       Address2 = model.Address2, 
       Address3 = model.Address3, 
       County = model.County, 
       Postcode = model.Postcode 
      }; 
      var result = await UserManager.CreateAsync(user, model.Password); 
      if (result.Succeeded) 
      { 

      //Create patient ID 
      Patient patient = new Patient(); 
      patient.PatientId = Guid.NewGuid(); 
      patient.UserId = user.Id; 
      db.Patients.Add(patient); 

       await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false); 

       return RedirectToAction("Index", "Home"); 
      } 
      AddErrors(result); 
     } 
     return View(model); 
    } 

在注册时我想创建患者的一个实例,这将产生连同patientId引用外键用户标识。但是,当我在注册时注册新用户时,不会创建相应的患者。 任何意见将不胜感激。

感谢

回答

1

旁边db.Patients.Add(patient);你需要调用的DbContext的调用SaveChanges确认日交易,你的情况行了,增加了病人。

+0

这个作品谢谢你! – coto2