AspNetUsers ссылаются на другую таблицу.Как создать объект (1-1отношение) - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь создать таблицу с дополнительной информацией о пользователе и связать ее с отношением пользователя один к одному.Я попробовал несколько вещей, найденных в stackOverflow, но все же я не могу правильно связать обе таблицы (создать объект)

Идея приложения заключается в рассмотрении и оценке косметолога.Пользователь может выбрать, хочет ли он иметь расширенную учетную запись в качестве терапевта (с дополнительной информацией и возможностью оценки).

Я изучаю asp.net mvc, поэтому я открыт для любой помощи или предложений, каксоздайте это приложение.

Когда пользователь вошел в систему и я пытаюсь создать объект Therapist, у меня возникает ошибка (похоже, я должен доставить объект пользователя).Не уверен, как решить это или даже если это решение для моей идеи хорошо.

public class Therapist
{     
        public int IdTherapist { get; set; }

        [Key, ForeignKey("User")]
        [Required]
        public string UserId { get; set; }

        public virtual  ApplicationUser User { get; set; }

        [Required]
        [Display(Name = "Name")]
        public string TherapistName { get; set; }

        [Display(Name = "Surname")]
        public string TherapistSurname { get; set; }

        [Display(Name = "City")]
        public string City { get; set; } }

public class ApplicationUser : IdentityUser
{    

        public virtual Therapist Therapist { get; set; }
        public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager)
        {

            var userIdentity = await manager.CreateIdentityAsync(this, DefaultAuthenticationTypes.ApplicationCookie);

            return userIdentity;
        }
    }

//Therapist Controller

public ActionResult Create(Therapist therapist)      
   if (therapist.UserId == null)
               therapist.UserId = User.Identity.GetUserId();

                    _context.Therapists.Add(therapist);
                            context.SaveChanges();

                ModelState.AddModelError("", "Unable to save changes. Try again, and if the problem persists see your system administrator.");
            }

            return View(therapist);

После запуска этого кода у меня есть

«System.Data.Entity.Validation.DbEntityValidationException», посмотрите ближе: «ErrorMessage« Поле пользователя обязательно для заполнения ».
(не User.Id)

1 Ответ

0 голосов
/ 31 мая 2019

Попробуйте добавить свойство TherapistId в класс пользователя.

...