实体框架 - 将子对象添加到父对象



我正在尝试实现与实体框架和代码优先的简单一对多关系。我以简单的方式设置了我的父类:

public class Parent
{
    [Key]
    public long ParentId { get; set; }
    public ICollection<Child> Child { get; set; }
    public Parent()
    {
        Child = new HashSet<Child>();
    }
}

当然,这是一个简化版本。我的子类和父类一样简单:

public class Child
{
    [Key]
    public long ChildId { get; set; }
    public int ParentId { get; set; }
    public virtual Parent parent { get; set; }
}

我的控制器是由 EF 生成的控制器。问题是,当我在 post 方法中创建具有父 ID 的孩子时,该 ID 是在数据库中设置的,但是当我获取父级时,子项列表为空。

我尝试在控制器的父项中添加子项,如下所示:

db.parent.find(child.parentId).Child.Add(child);

这显然没有效果。

子对象中的父对象为 null,父对象中的子列表为空。

我怎样才能让孩子进入家长的收藏?

谢谢!

据我所知,禁用代理创建也会影响延迟加载。延迟加载只能在代理类中工作。如果不是,则 EF 无法控制何时访问属性。

获得孩子的唯一方法是使用预先加载(使用 Include(((

相关内容

  • 没有找到相关文章

最新更新