Linq ChangeConflictException возникает при отправке изменений DataContext - PullRequest
10 голосов
/ 27 марта 2010
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 сохранить изменения? С «классическим» доступом к SQL Server через SqlDataCommand у меня никогда не было таких проблем.

1 Ответ

10 голосов
/ 27 марта 2010

Это связано с оптимистичным параллелизмом. Вы можете изменить это поведение, но понять, что оно делает, прежде чем сделать это.

https://blogs.msdn.microsoft.com/matt/2008/05/22/intro-to-linq-to-sql-optimistic-concurrency/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...