以下代码加载gig,清除gigs acts集合,然后添加新的行为。Linq和DeleteAllOnSubmit pain
Data.LinqToSQL.Gig dbGig = DBContext.Gigs.Where(x => x.ID == myGigID).SingleOrDefault();
//Remove all references to the current acts
if(dbGig.Acts!=null) {
DBContext.Acts.DeleteAllOnSubmit(dbGig.Acts);
}
Data.LinqToSQL.Act dbAct = new ListenTo.Data.LinqToSQL.Act();
dbAct.ID = Guid.NewGuid();
DBContext.Acts.InsertOnSubmit(dbAct);
DBContext.SubmitChanges();
请注意,每次我运行此代码,myGigID的价值是一样的,所以它总是说我加载相同的演出。
我第一次运行这个代码,它工作正常,我有一个演出的演出。
第二次,dbGig.Acts(集合)的计数为0,因此DeleteAllOnSubmit不会删除任何动作。但是在数据库中,这个演出有1个动作!因此,一旦这段代码运行,我最终会得到2个行为。
如果我第三次运行它,我总共会有3个动作。
任何想法我做错了什么?