我试图与实体框架和代码优先实现简单的一对多关系。 我设置一个简单的方法我的父类:实体框架 - 将子对象添加到父项
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);
这显然是没有效果的。
子对象中的父项为空,父项中的子项列表为空。
我怎样才能得到父母的收藏中的孩子?
谢谢!
你叫context.SaveChanges()? – amyn
您需要将您的“儿童”属性更改为“public virtual ICollection Child {get;组; }' –
嗨! 感谢您的关注,我确实打电话给SaveChanges()。 并添加虚拟没有帮助我的问题。我可能会补充说,我关闭了代理创建,以便序列化结果。 感谢您的编辑了。 –