假设我们有班级家长
public class Parent {
int Id {get;set;}
Child child {get;set;}
}
和班孩子
public class Child {
int Id {get;set;}
string Info {get;set;}
}
我创建了一个child对象并将其保存为db
Child child = new Child();
dbContext.Child.Add(child);
dbContext.SaveChanges();
然后创建一个父对象,并将创建的子对象分配给父对象(以便以后使用)
Parent parent = new Parent();
parent.child=child;
dbContext.Parent.Add(parent);
dbContext.SaveChanges();
问题:在数据库中保存父对象后,我在数据库中的子类中得到了一个重复的子对象。注意,我使用的是sql Server作为数据库。
我想将子对象分配给父对象,当我在数据库中保存父对象时,父对象不会再次保存子对象,请提供任何解决方案?
3条答案
按热度按时间jgzswidk1#
试试这个
z9smfwbn2#
如果dbContext已经存在,为了避免再次插入,可以在将子对象附加到上下文之后将dbContext设置为Unchanged。
在保存子对象之后添加以下代码。
kcugc4gi3#
我找到的唯一解决方案是只调用一次dbcontext的保存方法(我只在保存父对象时调用它),否则它将在数据库中保存两次。