В этом случае оказывается, что вы используете DataGridView (то есть WinForms).Я также предполагаю, что ваш dataClass сохраняется в форме, так что вы загрузили и привязали DataGridView из того же dataClass, в котором вы пытаетесь сохранить изменения в этом примере.
Предполагается, что вы связываете DataGridView с сущностямивозвращается через LINQ to SQL, когда вы редактируете значения, вы отмечаете нужную сущность, которую необходимо обновить при вызове следующего SubmitChanges.
В вашем обновлении вы вызываете dataClass.procUpdateInstructores(id, name, nationalNum, tel1, tel2, address, email);
, которыйнемедленно выдает хранимую процедуру для базы данных, устанавливая новые значения по мере их редактирования.Следующая строка - кикер.Поскольку ваш контекст данных все еще думает, что объект все еще грязный, SubmitChanges пытается отправить другой оператор обновления в вашу базу данных с исходными значениями, которые он извлек в качестве части предложения Where (для проверки на параллелизм).Поскольку хранимый процесс обновил эти значения, предложение Where не может найти подходящее значение и, таким образом, возвращает исключение параллелизма.
В этом случае лучше всего изменить модель LINQ to SQL, чтобы использовать ваши хранимые процедуры.для обновлений и вставок, а не версий, сгенерированных во время выполнения.Затем в своем коде синтаксического анализа просто вызовите SubmitChanges, не вызывая procUpdateInstructores вручную.Если ваш dbml настроен правильно, он будет вызывать хранимый процесс, а не оператор динамического обновления.
Кроме того, FWIW, ваш сохраненный процесс, кажется, не делает ничего больше, чем сгенерированный SQL.На самом деле, LINQ to SQL даст вам больше функциональности, так как вы все равно не проверяете параллелизм в своем хранимом процессе.Если вам необходимо использовать хранимые протоколы вашим администратором базы данных или какой-либо политикой безопасности, вы можете сохранить их, но вы можете рассмотреть возможность их обхода, если это все, что делают ваши хранимые процессы, и полагаться на сгенерированный SQL времени выполнения обновлений.