我们在数据库中有一个表,代表我们网页中的一堆div。每个div的像素宽度,高度,顶部和左侧都保存为表中的单个记录。它有一个主键。我们将表中的所有div加载到网页,用户重新排列squres,然后在单个事务中使用Linq“OnSubmit”方法将更改的方块保存回表中。
我们的问题是我们删除所有方块然后重新插入所有方块。没有交易,这很好。对于事务,它标记要删除的所有记录,然后插入实际更新已标记为要删除的记录。最后,一些方块丢失了。
我们执行DeleteOnSubmit(),然后执行InsertOnSubmit(),最后执行.SubmitChanges()。
我们在哪里弄错了?如何在同一个交易中处理删除和重新插入?显然我们可以在删除后提交SubmitChanges(),但这不会将它放在同一个事务中。
有什么想法吗?任何模式?您是否需要实际的源代码才能继续?
答案 0 :(得分:2)
我们建议您自己打开事务并在必要时提交。
在这种情况下,不会打开inernal交易。
t = db.Connection.BeginTransaction(); db.Transaction = t; DeleteOnSubmit(); SubmitChanges(); InsertOnSubmit(); SubmitChanges(); t.Commit();