gpt4 book ai didi

.net - Linq 和 DeleteAllOnSubmit 痛苦

转载 作者:行者123 更新时间:2023-12-04 07:10:42 27 4
gpt4 key购买 nike

以下代码加载演出,清除演出事件集合,然后添加新事件。

            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 的值都是相同的,因此它始终与我加载的 gig 相同。

我第一次运行此代码时,它运行良好,并且我有一个 1 幕演出。

第二次,dbGig.Acts(一个集合)的计数为 0,因此 DeleteAllOnSubmit 不会删除任何行为。但是在数据库中,这个演出有 1 个行为!因此,一旦此代码运行,我最终会执行 2 个 Action 。

如果我第三次运行它,我最终会得到 3 幕。

任何想法我做错了什么?

最佳答案

尝试在此块的开头打开一个新的 DBContext。如果您在第一次和第二次运行时使用相同的上下文,则第二次将看不到插入的记录。重置上下文应该会强制它查看表中的最新行。

关于.net - Linq 和 DeleteAllOnSubmit 痛苦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/400464/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com