将子对象添加到父项
我试图与实体框架和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