Linq 为什么实体框架导航属性为空?

Linq 为什么实体框架导航属性为空?,linq,ef-code-first,entity-framework-core,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;

我使用的是代码优先模型,关系如下

  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; }
}
但当我在上面运行此代码时,currentUser.MedicalSpecial不再为NULL。发生了什么事??不知何故,LINQ查询唤醒了对象并用数据填充它

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

            userSpecialtyName = currentUser.MedicalSpecialty.Description;

是否为db上下文启用了延迟加载和代理创建?这是EF6,不是EF Core,对吗?这是EF Core。请更新标签。此外,除非您使用的是2.1版本预览版,否则请查看文档的部分(目前还不支持延迟加载)。因此,我应该使用。包括在存储库模式中作为解决方案?正确。这是目前为止唯一的选择。
  var userSpecialtyId = currentUser.MedicalSpecialtyId;
            userSpecialtyName = _medicalSpecialtyRepository.Find
                                    (x => x.Id == userSpecialtyId).FirstOrDefault().Description;

            userSpecialtyName = currentUser.MedicalSpecialty.Description;