EF7一对多映射

时间:2016-05-09 13:25:49

标签: c# .net mapping entity-framework-core .net-core

我尝试使用Entity Framework 7.0.0-rc1-final映射两个类。这是我的课程:

    public class ParentClass
    {
            public ParentClass() { }

            [Key]
            public Int32 Id { get; set; }

            [Required]
            public String Field { get; set; }

            public List<ChildClass> Children { get; set; }

    }

    public class ChildClass
    {
        [Key]
        public Int32 Id { get; set; }

        public Int32 ParentID { get; set; }

        public ParentClass Parent { get; set; }
    }

我的上下文类中有一个使用Fluent API的映射代码:

    builder.Entity<ChildClass>().HasOne(x => x.Parent)
           .WithMany(x => x.Children).HasForeignKey(x => x.ParentID);

然后我添加几个带子项的ParentClass实例并将它们保存到DB。它们保存到DB并且在DB中看起来很好,但是当我试图获取ParentClass子列表时,我总是有空列表:

var data = _context.ParentInstances.ToList();
data[any].Children == null

1 个答案:

答案 0 :(得分:1)

您需要声明要在查询中包含子项的事实 尝试:

var data = _context.ParentInstances.Include(p => p.Children).ToList();

修改

确保添加对Microsoft.Data.Entity的引用