Почему свойство навигации Entity Framework имеет значение null? - PullRequest
0 голосов
/ 07 мая 2018

Я использую код первой модели с отношением ниже

  public class ApplicationUser : IdentityUser
{
    public string UserFirstName { get; set; }
    public string UserLastName { get; set; }
    public string UserSchool { get; set; }

    public UserProfileData UserProfileData { get; set; }

    public int? MedicalSpecialtyId { get; set; }
    public virtual MedicalSpecialty MedicalSpecialty { get; set; }

  //  public int? AnalyticsDataId { get; set; }
 //   public ICollection<AnalyticsData> AnalyticsDatas { get; set; }
}

  public class MedicalSpecialty
{
    public int Id { get; set; }
    public string Description { get; set; }

  //  public int ApplicationUserId { get; set; }
    public virtual ApplicationUser ApplicationUser { get; set; }

    public ICollection<ProgramDetailData> ProgramDetailDatas { get; set; }
}

И когда я пытаюсь получить связанный с пользователем объект MedicalSpecialty, он равен NULL

 userSpecialtyName = currentUser.MedicalSpecialty.Description;

НО, когда я запускаю этот код над ним, currentUser.MedicalSpecialty больше не NULL. Что случилось?? Каким-то образом этот запрос LINQ разбудил объект и наполнил его данными

  var userSpecialtyId = currentUser.MedicalSpecialtyId;
            userSpecialtyName = _medicalSpecialtyRepository.Find
                                    (x => x.Id == userSpecialtyId).FirstOrDefault().Description;

            userSpecialtyName = currentUser.MedicalSpecialty.Description;
...