Простой способ - Project> Управление пакетами NuGet ...> Обзор (вкладка)> в исходном запросе установите это: Microsoft.CodeDom.Providers.DotNetCompilerPlatform
Вы можете установить или обновить или удалить и установить это компилятор
Я наконец понял, что с этим происходит. Очевидно, для этого сервера была включена опция «без подсчета».
В Microsoft SQL Server Management Studio 2005:
По-видимому, LINQ to SQL использует @@ ROWCOUNT после обновлений для выпуска автоматического оптимистического проверка параллелизма Конечно, если «no count» включено для всего сервера, @@ ROWCOUNT всегда возвращает ноль, а LINQ to SQL генерирует исключение ConcurrencyException после выпуска обновлений для базы данных.
Это не единственное поведение обновления LINQ to SQL использует. LINQ to SQL не работает
Действительно ли возможно, что какие-либо из данных для строки изменились между тем, когда это было получено, и обновление было предпринято? Поскольку LINQ-> SQL имеет автоматический параллелизм, проверяющий, что это проверит содержание объекта против в настоящее время хранивших значений (как Вы, посмотрите в сгенерированном запросе). Если возможно, что любое из полей изменилось для строки в DB по сравнению с объектным LINQ, отслеживает тогда обновление, перестанет работать. Если это происходит и на серьезном основании, и Вы знаете, какие поля, можно обновить объект в разработчике DBML; выберите поле в причине и измените свойство "Update Check" на "Никогда".