Ошибка Linq to sql с полем увеличения идентификатора - PullRequest
5 голосов
/ 11 декабря 2008

Я только начал использовать linq to sql и столкнулся с проблемой при вставке записи с автоинкрементным полем.

Я создал новый экземпляр объекта компании, определенный linq. оно инициализировало автоматически увеличивающее поле 'companyID' в 0. Сбой InsertOnSubmit () со следующей исключением invalidOperationException.

Неправильная спецификация автосинхронизации для участник 'companyID'

атрибут столбца IsDbGenerated имеет значение true для свойства companyID. Я использую SQL Server 2000.

Редактировать: Автосинхронизация установлена ​​на OnIsert. Тип данных - BigInt в TSQL, длинный в c #.

Кто-нибудь знает, почему возникает эта ошибка и как ее можно устранить?

спасибо

Ответы [ 6 ]

9 голосов
/ 11 декабря 2008

Нашел ответ. Это было связано с первичными ключами. В конструкторе linq первичные ключи были настроены так, как они должны быть. В базе данных соответствующие поля не были установлены в качестве первичных ключей. Я исправил ключи в базе данных, и это решило проблему.

3 голосов
/ 11 декабря 2008

Что такое тип данных? Int? (как в TSQL, так и в C #?)

Какие настройки автосинхронизации у вас есть? Для первичного ключа это должно быть "OnInsert"

2 голосов
/ 22 октября 2010

Та же проблема. Установка первичного ключа в БД и изменение свойства AutoSync на "OnInsert" в DBML помог

1 голос
/ 19 июня 2011

При вставке опция устанавливается только при вставке значений в базу данных. Если у вас нет проблем с опцией безопасности для базы данных, всегда используйте опцию Никогда в базе данных.

1 голос
/ 11 декабря 2008

Какое значение свойства 'Auto-Sync' для этого класса / таблицы?

Я только что проверил со своей стороны, и он установлен на «InInsert». Также для «Автоматически сгенерированного значения» установлено значение true.

0 голосов
/ 06 ноября 2013

Если это возможно, удалите вашу базу данных и создайте заново. Мой случай был, когда я забыл добавить первичный ключ на стол. Затем, после первой вставки в базу данных, я получил исключение об отсутствии первичного ключа. Я применил это вручную в конструкторе dbml, но первый идентификатор уже был взят, что вызвало исключение «Неправильная автосинхронизация».

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