删除后,我在linq中插入实体时遇到了麻烦(没有提交更改)。
List<AlergiesPerPersonBE> AlergiesPerPerson = AlergiesPerPersonToInsert;
RepositoryFactory.GetAlergiesPerPersonRepository().DeleteWhere(x => x.PersonId == id);
RepositoryFactory.GetAlergiesPerPersonRepository().Insert(AlergiesPerPerson);
DataContextFactory.SubmitChanges();
两者(删除和插入)都不提交任何更改。它们只是InsertAllOnSubmit和DeleteAllOnSumbit。
代码第一次运行正常。所有细节都正确插入。第二次运行相同的代码时,db的所有行都被删除。第三次,一切正常。它有效,然后没有,依此类推。
答案 0 :(得分:2)
我认为你必须重新制作细节。 即使尚未调用保存更改,上下文也会将此项跟踪为“已删除”。
答案 1 :(得分:2)
尝试
...DeleteWhere(x => x.PersonId == id);
DataContextFactory.SubmitChanges();
...Insert(AlergiesPerPerson);
DataContextFactory.SubmitChanges();
您无需每个工作单元仅提交一次更改。请注意,这仍适用于您拥有的任何交易。
答案 2 :(得分:0)
周围有肮脏的工作。由于您想要摆脱DataContext观察者,您需要:
您可以将其移至CloneHelper静态类,以便将其用于任何类型