2015-08-19 3 views
0

Я очень новичок в MVC5 и .NET. Я использую пользователь ASP приложений и имею дополнительную таблицу Patient:Создание таблицы из другой таблицы - 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); вам нужно вызвать SaveChanges на DbContext, чтобы подтвердить де сделки, в вашем случае, добавьте к пациенту.

+0

Это работает спасибо! – coto2

Смежные вопросы