Ami*_*mit 7 entity-framework parent-child ef-code-first entity-framework-4.1
我已经在数据库中插入了一些父记录.现在我想添加一些子记录.为此,我按照以下步骤操作:
问题是,当我这样做时,EF插入一个New Parent,然后添加一个外键指向新新插入的父项,而不是只插入映射到已存在父项的子项.我还在保存子项时检查了父项的主键,它确实存在于数据库中.
请注意,我正在为父和子使用数据库生成的标识.我注意到的一件事是,如果我从同一个上下文对象添加/保存父和子,那么它工作正常.
需要尽快解决这个问题.任何帮助将不胜感激.
Lad*_*nka 22
是的,您必须为该操作使用相同的上下文.这就是重点.如果不使用相同的上下文,则必须手动控制将插入哪个对象,哪些对象已更新,哪些对象不会被修改.在您的方案中,序列可以是:
context.Parents.Attach(parent); // just attach as unchanged
context.Childs.Add(child); // add as inserted
parent.Childs.Add(child); // make connection between existing and inserted object
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
另一种方法可以是:
child.Parent = parent;
context.Childs.Add(child); // both child and parent are marked as inserted!!!
context.Entry(parent).State = EntityState.Unchanged; // set parent as unchanged
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8061 次 |
| 最近记录: |