2014-02-27 113 views
0

我有一个父表,它与子表具有一对多的关系。当我创建一个新的孩子时,我该如何正确地将它与父母联系起来?我是否必须首先使用context.Children.add(child)之类的东西将孩子添加到数据库?或者我可以只说context.Parent.Children.add(孩子)?我只是困惑于将孩子添加到父母收藏中并将他们的关系设置为彼此的最佳方式。EF - 将对象添加到集合

回答

0

这就是你需要的一切。您不需要单独调用Context.ChildCollection.AddObject(Child)。

Parent.ChildCollection.Add(Child);

+0

我明白了。这就是我正在做的事情,它不起作用。我想这是因为我如何获得我的背景。我正在使用一组和导航属性。 –

1

如果添加一个孩子现有的父的子集,EF将插入了孩子,影响其正常外键父。

using(var context = new Entities()) 
{ 
    context.Parent.Children.Add(child); 
    context.SaveChanges(); 
} 
+0

这对我来说并不适用,因为我认为自己的背景很重要。我会尽力解决这个问题。谢谢。 –

+0

不要在呼叫中坚持上下文,几乎在每种情况下上下文都应该是短暂的。 (即,创建并立即在单位或工作完成后处置) – EkoostikMartin

+0

这是很好的建议,谢谢。该设置的跟踪已关闭,因此在保存更改时不会更新。 –