EF7 一对多映射
EF7 One-to-many mapping
我正在尝试使用 Entity Framework 7.0.0-rc1-final 映射两个 classes。这是我的 classes:
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; }
}
并且我在我的上下文 class 中有一个映射代码与 Fluent API:
builder.Entity<ChildClass>().HasOne(x => x.Parent)
.WithMany(x => x.Children).HasForeignKey(x => x.ParentID);
然后我添加了几个带有子项的 ParentClass 实例并将它们保存到数据库中。它们被保存到数据库并且在数据库中看起来不错,但是当我试图获取 ParentClass 子级列表时,我总是有空列表:
var data = _context.ParentInstances.ToList();
data[any].Children == null
您需要声明要在查询中包含 children
尝试:
var data = _context.ParentInstances.Include(p => p.Children).ToList();
编辑:
确保添加对 Microsoft.Data.Entity
的引用
我正在尝试使用 Entity Framework 7.0.0-rc1-final 映射两个 classes。这是我的 classes:
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; }
}
并且我在我的上下文 class 中有一个映射代码与 Fluent API:
builder.Entity<ChildClass>().HasOne(x => x.Parent)
.WithMany(x => x.Children).HasForeignKey(x => x.ParentID);
然后我添加了几个带有子项的 ParentClass 实例并将它们保存到数据库中。它们被保存到数据库并且在数据库中看起来不错,但是当我试图获取 ParentClass 子级列表时,我总是有空列表:
var data = _context.ParentInstances.ToList();
data[any].Children == null
您需要声明要在查询中包含 children 尝试:
var data = _context.ParentInstances.Include(p => p.Children).ToList();
编辑:
确保添加对 Microsoft.Data.Entity
的引用