System.Data.Linq.ChangeConflictException: 2 of X updates failed.
at System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode)
at System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode)
at PROJECT.Controllers.HomeController.ClickProc(Int32 id, String code, String n)
这是我经常得到的。这个动作每天进行数千次,每隔5秒我就会得到一次此异常。根据我的理解,当在创建DataContext
和更新它之间的时间段内数据库中的某些内容发生变化时,就会发生这种情况。我是对的吗?
我该如何解决?
更新
我刚刚调试了错误,发现了以下内容:
Table name: dbo.Stats
current value: 9852039
original value: 9852038
database value: 9852039
统计表不断更新。那么我怎样才能让LINQ保存更改。通过SqlDataCommand
访问“经典”SQL Server,我从来没有遇到过类似的问题。
答案 0 :(得分:10)
这是由于乐观的并发性。您可以更改此行为,但在执行此操作之前了解它的作用。
https://blogs.msdn.microsoft.com/matt/2008/05/22/intro-to-linq-to-sql-optimistic-concurrency/