内部亲属实体:
[Table("HrKindredInside")]
    public class HrKindredInside : SysLogBaseField
    {
        [Key]
        public int ID { get; set; }        [Display(Name = "工号")]
        [Required]
        public string MasterStaffNo { get; set; }        [NotMapped]
        public string MasterRealName { get; set; }        [ForeignKey("MasterStaffNo")]
        public HrStaff MasterStaff { get; set; }        [Display(Name = "工号")]
        //[Required]
        public string SlaveStaffNo { get; set; }        [NotMapped]
        public string SlaveRealName { get; set; }        [ForeignKey("SlaveStaffNo")]
        public HrStaff SlaveStaff { get; set; }        [Display(Name = "是否直系亲属")]
        public bool IsImmediateFamily { get; set; }        /// <summary>
        /// 直系亲属类型
        /// </summary>
        public ImmediateFamilyType ImmediateFamilyType { get; set; }        [Display(Name = "关系")]
        public string Relation { get; set; }        [Display(Name = "记录所属公司")]
        public int CompanyID { get; set; }        [Display(Name = "备注")]
        [StringLength(200)]
        public string Re { get; set; }
    }
生成的数据库表结构如下图:
当我去检索该表所有数据时却发现,级联的实体对象都是null。
有点莫名其妙,项目中第一次遇到这个问题。其他实体之间的级联关系都没出现过这个问题。特来请教~

解决方案 »

  1.   

    如果不是Eager Load, EF是不会主动取的,你可以在查询的时候取一下这个引用
    参考下这个
    http://msdn.microsoft.com/en-us/data/jj574232.aspx
      

  2.   

    你试试,缺的几个column加上virtual
            [ForeignKey("MasterStaffNo")]
            public virtual HrStaff MasterStaff { get; set; }Entity Framework有3中加载方式,Lazy, Explicit, 和eager
    google下吧上面的方法只是让你试试,具体还是要看你代码
      

  3.   


    !对噢,我忘记给virtual关键字了!多谢,是我2了。。