为什么Entity Framework导航属性为null?

时间:2018-05-07 15:19:51

标签: linq ef-code-first entity-framework-core

我使用代码第一个模型,其关系如下

  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;

0 个答案:

没有答案