日期:2014-05-16  浏览次数:20369 次

MVC为什么不加载子对象的数据?
当调用db.ClientRegisters.ToList()后,FreeTryModel的数据都为null,而RegisterModel的数据全部已加载,不知为什么?是不是与生成的数据库有关系?

 public class ClientRegister
    {
        //public ClientRegister()
        //{
        //    this.RegisterModel = new RegisterModel();
        //    this.FreeTryModel = new FreeTryModel();
        //}

        [Key]
        [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
        public int ID
        {
            get;
            set;
        }

        public  RegisterModel RegisterModel
        {
            get;
            set;
        }
        public  FreeTryModel FreeTryModel
        {
            get;
            set;
        }
    }

生成的数据库表结构:


------解决方案--------------------
确定那个外键值有值吗?在数据库中
------解决方案--------------------
长话短说:
1、这和MVC没有任何关系,你说的是问题最多只能算是Entity Framework的问题;
2、你的ClientRegister没有指定外键,怎么可能加载关联对象?
3、即使指定了外键,在获取数据时也得用Include方法显式指定要加载的关联对象才行。