将子对象添加到父项

我试图与实体框架和Code First实现简单的一对多关系。 我以一种简单的方式设置父类:

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在数据库中设置,但是当我得到父项时,子项列表为空。

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

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

这显然没有效果。

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

我怎样才能让孩子在父母的收藏中?

谢谢 !


据我所知,禁用代理创建也会影响延迟加载。 延迟加载只能在代理类中使用。 如果没有,那么当您访问属性时,EF无法控制。

你可以得到孩子的唯一方法是使用加载(使用Include())

链接地址: http://www.djcxy.com/p/37659.html

上一篇: Add child object to parent

下一篇: Linq to Entity : add filter to child entities of child entities