以下代碼加載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個動作。
任何想法我做錯了什麼?