重新提交更改?

时间:2010-07-09 20:59:36

标签: c# linq

如果我想重新提交更改,我必须在第一次提交后重新定义它们,或者我可以再次调用SubmitChanges()方法,如下面的代码所示:

DB.SubmitChanges();

Thread.Sleep(1000);

DB.SubmitChanges();

编辑:我之所以这样做是因为我有两个不同的linq查询使用RefreshMode.OverwriteCurrentValues来处理冲突。其中一个查询比另一个更重要,为了胜过另一个,我最好的想法(我承认这不是很好)就是等待一段时间然后重新提交更改。

1 个答案:

答案 0 :(得分:0)

如果DB.SubmitChanges返回而没有抛出异常 - 它认为数据库现在有更改。它仍在跟踪“已更改”的值,但它们会被跟踪为未更改,并且不会重新提交。

如果DB.SubmitChanges抛出,则认为没有任何更改进入数据库。在这种情况下,“已更改”值仍会被跟踪为已更改,并再次调用DB.SubmitChanges将尝试进行相同的更改。您可能希望在执行第二次调用之前解决乐观并发冲突。