Linq to SQL с уникальным индексом, используя опцию игнорирования повторяющихся ключей и столбец Identity - PullRequest
0 голосов
/ 08 февраля 2011
_db.Comments.InsertAllOnSubmit(comments);
_db.SubmitChanges();

В этой таблице есть уникальный индекс с IGNORE_DUP_KEY = ON, я знаю, что я вставляю дубликаты, я просто хочу их игнорировать, я бы не стал проверять каждую запись вручную, так как это будет медленнее.

Выдает следующее:

InvalidOperationException: Нулевое значение не может быть присвоено элементу с типом System.Int32, который является типом значения, не допускающим обнуление.

I 'м, если предположить, что это потому, что значение, возвращаемое L2S для поля первичного ключа (это столбец IDENTITY), равно нулю.Мне это кажется почти ошибкой.

У кого-нибудь есть идеи, кроме отдельной вставки с попыткой / ловлей или ручной проверкой?

1 Ответ

0 голосов
/ 08 февраля 2011

Вы можете изменить свойство, чтобы быть обнуляемым.Это больше похоже на обход, чем на решение.Вы можете изменить его в сгенерированном коде (плохая идея) или создать подкласс и новое ключевое слово.

int?ID;

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