Вставить, используя Linq-to-SQL, где IDENTITY_INSERT установлен в OFF - PullRequest
0 голосов
/ 29 ноября 2018

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

Упрощенный код:

Table<Class1> customers = db.GetTable<Class1>();
customers.InsertOnSubmit(new Class1 { Prop1 = "test });
try { db.SubmitChanges(); }
catch (ChangeConflictException ex) { }

Я получаю следующую ошибку:

Невозможно вставить явное значение для столбца идентификаторов в таблице 'Log', когда для IDENTITY_INSERT задано значение OFF.

Я предполагаю, что Linq2SQL обновляет все столбцы автоматически.Но как мне обойти это?Я даже пытался просто исключить этот столбец из класса, но затем Linq2SQL сообщает мне, что:

Невозможно выполнить операции Create, Update или Delete над таблицей (Class1), потому чтоу него нет первичного ключа.

1 Ответ

0 голосов
/ 29 ноября 2018

Ваше свойство должно иметь следующие свойства:

[Column(Storage="ColumnID", AutoSync=AutoSync.Always, DbType="Int NOT NULL 
     IDENTITY", IsDbGenerated=true)]
public int ColumnID 

Если ваша таблица столбцов имеет автоматическую идентификацию в базе данных, попробуйте заново создать или обновить LINQ TO SQL Контекст БД.

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