EF Add Object是自动创建的子对象吗?

时间:2019-04-02 16:49:48

标签: c# entity-framework

如果我有一个Parent对象,其中包含对Child表的外键引用,并且我将Child添加到Parent,我是否需要分别在孩子和父对象上调用Context.Add()?还是只是父母?

鉴于:

Parent.childobj=child;//foreign key reference set to the child object

此:

mycontext.Add(Child);
mycontext.Add(Parent);

mycontext.Add(Parent);

1 个答案:

答案 0 :(得分:0)

如果两个实体都已经存在,并且您想将子代与父代相关联,并且上下文也跟踪了父代实体,那么更新FK属性就足够了。

Parent.ChildId=child.Id;
context.SaveChanges();

现在,如果Child是一个新实体,并且父级已经存在并且已被上下文跟踪,则使用reference属性将两者关联:

Parent.childobj=child; // You can also do this if both exist already in your DB
context.SaveChanges();

如果两者都是新的,则将父级添加到上下文中,这还将保留相关的子级:

Parent.childobj=child;
context.Parent.Add(parent);
context.SaveChanges();